k8s 弹性伸缩pod <常用命令二>

本文演示了在Kubernetes集群中创建和管理Deployment的步骤,包括查看命名空间、导出与应用yaml配置、启动和检查Pod、ReplicaSet以及Deployment的状态。此外,还展示了如何使用kubectlscale命令动态调整Pod副本数量,通过编辑Deployment配置和使用HPA进行自动扩缩容,最后删除HPA设置的过程。
摘要由CSDN通过智能技术生成

1、查看当前集群的ns 

kubectl get  ns

2、导出deployment 的yaml 文件

kubectl  create deployment web1 --image=nginx  --dry-run=client -o yaml > nginxdeploy.yaml 

vim  nginxdeploy.yaml  如下:

apiVersion: app/v1

kind: Deployment

metadata: 

      creationTimeStamp: null

      labels: 

           app:web1

       name: web1

 spec:

       replicas: 3

       selector:

             matchLables:

       app: web1

     strategy: {}

      template:
    metadata:
      creationTimestamp: null
      labels:
        app: web1
    spec:
      containers:
      - image: nginx
        name: nginx
        ports:
        - containerPort: 80
        resources: {}
status: {}
 

      

3、启动deployment

kubectl apply -f nginxdeploy.yaml

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl  apply  -f ngixndeplog.yaml
deployment.apps/web1 created
 

4、查看刚才生产的pod 的信息

kubectl get pod -o wide 

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl get pod -o wide
NAME                    READY   STATUS    RESTARTS   AGE     IP               NODE                         NOMINATED NODE   READINESS GATES
web1-66b5fd9bc8-2wpkr   1/1     Running   0          3m45s   10.244.171.131   vms82.liruilongs.github.io   <none>           <none>
web1-66b5fd9bc8-9lxh2   1/1     Running   0          3m45s   10.244.171.130   vms82.liruilongs.github.io   <none>           <none>
web1-66b5fd9bc8-s9w7g   1/1     Running   0          3m45s   10.244.70.3      vms83.liruilongs.github.io   <none>           <none>
 

5、查看创建的replicaSet 

kubectl get rs  -o wide 

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl get rs -o wide
NAME              DESIRED   CURRENT   READY   AGE     CONTAINERS   IMAGES   SELECTOR
web1-66b5fd9bc8   3         3         3       4m28s   nginx        nginx    app=web1,pod-template-hash=66b5fd9bc8
 

6、查看创建的deployment 的信息

kubectl get deployment -o wide 

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl get deploy -o wide
NAME   READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES   SELECTOR
web1   2/3     3            2           37s   nginx        nginx    app=web1

 

7、手动模式通过执行kubecl scale命令对一个Deploymen/RC进行Pod副本数量的设置,即可一键完成

命令行修改kubectl scale deployment web1 --replicas=2

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl scale deployment web1 --replicas=2
deployment.apps/web1 scaled
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl get pod -o wide
NAME                    READY   STATUS    RESTARTS   AGE     IP               NODE                         NOMINATED NODE   READINESS GATES
web1-66b5fd9bc8-2wpkr   1/1     Running   0          8m19s   10.244.171.131   vms82.liruilongs.github.io   <none>           <none>
web1-66b5fd9bc8-s9w7g   1/1     Running   0          8m19s   10.244.70.3      vms83.liruilongs.github.io   <none>           <none>
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$

8、edit的方式修改kubectl edit deployment web1

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl edit deployment web1
deployment.apps/web1 edited
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl get pod -o wide
NAME                    READY   STATUS              RESTARTS   AGE     IP               NODE                         NOMINATED NODE   READINESS GATES
web1-66b5fd9bc8-2wpkr   1/1     Running             0          9m56s   10.244.171.131   vms82.liruilongs.github.io   <none>           <none>
web1-66b5fd9bc8-9lnds   0/1     ContainerCreating   0          6s      <none>           vms82.liruilongs.github.io   <none>           <none>
web1-66b5fd9bc8-s9w7g   1/1     Running             0          9m56s   10.244.70.3      vms83.liruilongs.github.io   <none>           <none>
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$

9、修改yaml文件方式

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$sed  -i 's/replicas: 3/replicas: 2/' ngixndeplog.yaml
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl  apply  -f ngixndeplog.yaml
deployment.apps/web1 configured
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl get pod -o wide
NAME                    READY   STATUS    RESTARTS   AGE   IP               NODE                         NOMINATED NODE   READINESS GATES
web1-66b5fd9bc8-2wpkr   1/1     Running   0          12m   10.244.171.131   vms82.liruilongs.github.io   <none>           <none>
web1-66b5fd9bc8-s9w7g   1/1     Running   0          12m   10.244.70.3      vms83.liruilongs.github.io   <none>           <none>
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$

10、设置metric server 监控

kubectl top nodes 

┌──[root@vms81.liruilongs.github.io]-[~/ansible/metrics/deploy/1.8+]
└─$kubectl top nodes
NAME                         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
vms81.liruilongs.github.io   401m         20%    1562Mi          40%
vms82.liruilongs.github.io   228m         11%    743Mi           19%
vms83.liruilongs.github.io   221m         11%    720Mi           18%

11、配置HPA
设置副本数是最小2个,最大10个,CPU超过80

kubectl autoscale deployment web1 --min=2 --max=10 --cpu-percent=80

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl autoscale deployment  web1  --min=2 --max=10 --cpu-percent=80
horizontalpodautoscaler.autoscaling/web1 autoscaled
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl  get hpa
NAME   REFERENCE         TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
web1   Deployment/web1   <unknown>/80%   2         10        2          15s
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$kubectl delete hpa web1
horizontalpodautoscaler.autoscaling "web1" deleted
┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-deploy-create]
└─$

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值