K8S-kubectl scale(静态)扩缩容pod,K8S-kubectl autoscale(动态)扩缩容pod,K8S的HorizontalPodAutoscaler(HPA)机制自动扩容缩容
搭建K8S文档:yum安装K8S
ansible搭建K8S集群:ansible搭建K8S
准备至少3个机器搭建好K8S集群
节点名称 | IP |
---|---|
k8s-master | 192.168.116.130 |
k8s-node1 | 192.168.116.131 |
k8s-node2 | 192.168.116.132 |
1、静态调整pod方式
1.1 通过kubectl scale 命令扩缩pod
官网文档:kubectl-scale命令
kubectl scale命令扩容pod
注意:扩容时必须要node节点有资源,要不然会扩容不了。
vi nginx.yml 创建1个pod
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx-deployment
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: docker.io/library/nginx:1.18.0-alpine
kubectl apply -f nginx.yml 创建pod
kubectl get pod -n default 可以看到只创建了1个pod
kubectl get deployment -n default 查看pod对应的控制器名称
指定控制器名称,指定扩容pod的数量扩容
kubectl scale deployment/nginx-deployment --replicas=2 -n default
kubectl get pod -n default 可以看到pod变成了2个
kubectl scale命令缩容pod
kubectl get pod -n default 按照上面创建2个pod后,查看pod信息
指定控制器名字修改pod的数量
kubectl scale deployment/nginx-deployment --replicas=1 -n default
kubectl get pod -n default 可以看到pod变成了1个
1.2 使用yml文件扩缩容pod
yml文件的扩容pod
注意:扩容时必须要node节点有资源,要不然会扩容不了。
vi nginx.yml 创建1个pod
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx-deployment
namespace: default
spec:
replicas: 1 #这里定义创建几个pod
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: docker.io/library/nginx:1.18.0-alpine
kubectl apply -f nginx.yml 创建pod
kubectl get pod -n default 可以看到只创建了1个pod
vi nginx.yml 修改这个参数
spec:
replicas: 2 #只修改文件的这个数字,改为2个&