Kubernetes----Deployment常用操作
作者:redrose2100   类别:    日期:2022-05-22 16:27:23    阅读:1211 次   消耗积分:0 分

因为kubernetes在v1.18.0版本之后废弃了—replicas 参数,因此这里就不涉及命令行方式创建deployment的了,而推荐使用yaml的方式

一、使用配置文件创建deployment

1.1 编写配置文件

如下,创建deployment-nginx.yaml文件,编辑内容如下,即创建一个dev命名空间,并在dev命名空间中创建三个nginx的pod,并且创建一个deployment控制器

  1. apiVersion: v1
  2. kind: Namespace
  3. metadata:
  4. name: dev
  5. ---
  6. apiVersion: apps/v1
  7. kind: Deployment
  8. metadata:
  9. name: nginx
  10. namespace: dev
  11. spec:
  12. replicas: 3
  13. selector:
  14. matchLabels:
  15. run: nginx
  16. template:
  17. metadata:
  18. labels:
  19. run: nginx
  20. spec:
  21. containers:
  22. - image: nginx:1.17.1
  23. name: nginx
  24. ports:
  25. - containerPort: 80
  26. protocol: TCP

1.2 创建资源

使用如下命令创建资源

  1. [root@master demo]# kubectl apply -f deployment-nginx.yaml
  2. namespace/dev created
  3. deployment.apps/nginx created
  4. [root@master demo]#

1.3 查看创建的资源

如下,同时查看deployment和pod

  1. [root@master demo]# kubectl get deployment,pod -n dev
  2. NAME READY UP-TO-DATE AVAILABLE AGE
  3. deployment.apps/nginx 3/3 3 3 68s
  4. NAME READY STATUS RESTARTS AGE
  5. pod/nginx-66ffc897cf-787xt 1/1 Running 0 68s
  6. pod/nginx-66ffc897cf-cxxjs 1/1 Running 0 68s
  7. pod/nginx-66ffc897cf-k88qt 1/1 Running 0 68s
  8. [root@master demo]#

1.4 删除其中一个pod

如下删除其中一个pod

  1. [root@master demo]# kubectl delete pod/nginx-66ffc897cf-787xt -n dev
  2. pod "nginx-66ffc897cf-787xt" deleted
  3. [root@master demo]#

再次查看deployment和pod,如下,可以发现此时还是三个pod,仔细观察可以发现,上面的删除操作确实成功了,只不过这里又增加了一个新的pod,这就是deployment控制器在发挥作用,即当一个pod被删除后,deployment控制器会自动的创建一个新的pod来满足要求

  1. [root@master demo]# kubectl get deployment,pod -n dev
  2. NAME READY UP-TO-DATE AVAILABLE AGE
  3. deployment.apps/nginx 3/3 3 3 3m21s
  4. NAME READY STATUS RESTARTS AGE
  5. pod/nginx-66ffc897cf-cxxjs 1/1 Running 0 3m21s
  6. pod/nginx-66ffc897cf-k88qt 1/1 Running 0 3m21s
  7. pod/nginx-66ffc897cf-ztpbm 1/1 Running 0 38s
  8. [root@master demo]#

1.5 删除资源

使用如下命令删除资源

  1. [root@master demo]# kubectl delete -f deployment-nginx.yaml
  2. namespace "dev" deleted
  3. deployment.apps "nginx" deleted
  4. [root@master demo]#
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/252
个人成就
  • 博客总数: 613 
  • 阅读总量: 735758 
  • 2022年 : 371 篇 
  • 2023年 : 211 篇 
  • 2024年 : 31 篇 
  • 2025年 : 0 篇 
测试开发技术全栈公众号
DevOps技术交流微信群