本文首发于我的公众号 cloud_dev, 专注于干货分享, 号内有大量书籍和视频资源, 后台回复「1024」即可领取, 欢迎大家关注, 二维码文末可以扫.
Hi, 大家好, 我是 CloudDeveloper, 欢迎大家和我一起学 K8S, 这是系列第 11 篇.
资源的伸缩在云计算环境中是至关重要的, 云计算的动机就是企图提高资源的利用率, 在用户请求高峰期的时候能够对资源进行横向扩容, 反之, 当用户请求回落低谷的时候, 能够及时缩减资源, 避免资源的浪费.
这就像双十一的时候, 随着用户不断地涌入, 阿里后台需要不断调配更多的资源来支撑用户大量的请求, 当过了双十一当天, 再慢慢缩减资源的使用.
Kubernetes 作为一个集群管理系统, 提供了两种资源伸缩的方式: 手动和自动. 本文先来看手动方式.
Kubernetes 的资源伸缩本质上指的是 Pod 的扩容和缩容 (scale up/down), 也就是增加或减少 Pod 的副本数.
手动的方式是使用 kubectl scale 命令手动进行, 或者基于 YAML 配置来实现.
首先, 定义一个 nginx-deployment.YAML 配置文件:
- apiVersion: extensions/v1beta1
- kind: Deployment
- metadata:
- name: nginx-deployment
- spec:
- replicas: 3
- template:
- metadata:
- labels:
- App: web_server
- spec:
- containers:
- - name: nginx
- image: nginx:1.12.1
其中定义了 3 个副本, 执行 kubectl create -f nginx-deployment.YAML 创建 Pod.
如果现在遇到高峰请求, 我们急需进行扩容, 执行
kubectl scale deployment nginx-deployment --replicas 5
将 Pod 扩增到 5 个.
其中, 用 --replicas 来指示增缩的数量, 对于缩容, 将 --replicas 设置为比当前 Pod 副本数量更小的数字即可, 比如缩容到 2 个如下:
可以看到, Pod 销毁会经历一个 Terminating 的过程, 最终 3 个副本被删除, 只保留了 2 个副本.
以上是通过命令的形式来实现手动的扩容和缩容, 我们也可以修改 YAML 配置文件中的 replicas 来实现, 只要修改完之后执行 kubectl apply 即可.
OK, 本文到此为止, 下文我们再来 Pod 伸缩的另一种方式 -- 自动扩容和缩容.
我的公众号 cloud_dev, 号内有大量书籍和视频资源, 后台回复「1024」即可领取, 分享的内容包括但不限于云计算虚拟化, 容器, OpenStack,K8S, 雾计算, 网络, 工具, SDN,OVS,DPDK,Linux,Go,Python,C/C++ 编程技术等内容, 欢迎大家关注.
来源: https://www.cnblogs.com/bakari/p/10613654.html