K8S实战
01、K8s实战:Windows10安装Docker,配置阿里云加速器
02、K8s实战:基础知识之简介
03、K8s实战:基础知识之组件
04、K8s实战:Centos7.6yum安装Docker,配置阿里云加速器
05、K8s实战:Centos7.6安装dockercompose
06、K8s实战:Centos7.6使用Ansible安装K8S(测试单节点)
07、K8s实战:Dockercompose安装中文版GitLab,配置SSH免密登录
08、K8s实战:Centos7.6安装私服Harbor
09、K8s实战:SpringBoot使用jib打包Docker镜像至私服
10、K8s实战:dockercompose之网络设置
11、K8s实战:使用开源项目io.fabric8之docker
12、K8s实战:二进制方式搭建K8S集群(环境准备)
13、K8s实战:二进制方式搭建K8S集群(完结)
14、K8s实战:K8S管理平台Rancher安装及集群导入
15、K8s实战:陈述式管理之kubectl常用命令
16、K8s实战:声明式管理示例之K8S部署Nginx及修改删除
17、K8s实战:K8S存储Volume之ConfigMap
18、K8s实战:K8S存储Volume之Secret
19、K8s实战:K8S存储之emptyDir+hostPath
20、K8s实战:K8S存储之NFSPVPVC
21、K8s实战:K8S控制器之ReplicaSet
22、K8s实战:K8S控制器之Deployment
23、K8s实战:K8S控制器之DaemonSet
24、K8s实战:K8S控制器之JobCronJob
25、K8s实战:K8S之Service
26、K8s实战:K8S之Ingress
27、K8s实战:K8S之Schedule
28、K8s实战:K8S之Helm安装与配置
29、K8s实战:K8S之部署微服务项目实战
本文档使用 MrDoc 发布
-
+
首页
22、K8s实战:K8S控制器之Deployment
### **简介** 一个Deployment 控制器为 Pods 和 ReplicaSets 提供声明式的更新能力。Deployment 是最常用的用于部署无状态服务的方式。 你负责描述 Deployment 中的 目标状态,而 Deployment 控制器以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。 ### **使用方式** 以下是Deployment 的典型用例: - 定义Deployment 来创建Pod和ReplicaSet - 滚动升级和回滚应用 - 自动伸缩 - 暂停和继续Deployment ### **创建** ```python vim nginx-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: # Deployment名称 name: nginx-deployment labels: app: nginx spec: # Pod 副本数量 replicas: 3 # 定义 Deployment 如何查找要管理的 Pods selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: daocloud.io/library/nginx:1.7.11 ports: - containerPort: 80 # 你可以设置 --record 标志将所执行的命令写入资源注解 kubernetes.io/change-cause 中。 这对于以后的检查是有用的。例如,要查看针对每个 Deployment 修订版本所执行过的命令。 kubectl create -f nginx-deploy.yaml --record kubectl get deployments # 查看 Deployment 上线状态 kubectl rollout status deployment.v1.apps/nginx-deployment # 会自动创建rs kubectl get rs # 查看每个 Pod 自动生成的标签 kubectl get pods --show-labels ```  **deployment字段说明** - NAME 列出了集群中 Deployment 的名称。 - READY 显示应用程序的可用的 副本 数。显示的模式是“就绪个数/期望个数”。 - UP-TO-DATE 显示为了打到期望状态已经更新的副本数。 - AVAILABLE 显示应用可供用户使用的副本数。 - AGE 显示应用程序运行的时间。 **ReplicaSet 字段说明:** - NAME 列出名字空间中 ReplicaSet 的名称; - DESIRED 显示应用的期望副本个数,即在创建 Deployment 时所定义的值。 此为期望状态; - CURRENT 显示当前运行状态中的副本个数; - READY 显示应用中有多少副本可以为用户提供服务; - AGE 显示应用已经运行的时间长度。 注意ReplicaSet 的名称始终被格式化为[Deployment名称]-[随机字符串]。 其中的随机字符串是使用 pod-template-hash 作为种子随机生成的 ### **扩容** ```python kubectl scale deployment nginx-deployment --replicas 5 ``` ### **自动扩容** ```python kubectl autoscale deployment nginx-deployment --min=1 --max=5 --cpu-percent=80 ``` ### **更新镜像版本** ```python # 将ngixn更新到1.9.2 kubectl set image deployment/nginx-deployment nginx=daocloud.io/library/nginx:1.9.2 # kubectl describe deployment nginx-deployment ``` ### **回滚版本** ```python kubectl rollout undo deployment/nginx-deployment # 查看回滚状态 kubectl rollout status deployment.v1.apps/nginx-deployment # 查看历史版本 kubectl rollout history deployment/nginx-deployment # 指定版本查看修订历史的详细信息 kubectl rollout history deployment/nginx-deployment --revision=4 # 指定版本回滚 kubectl rollout undo deployment/nginx-deployment --to-revision=3 # 暂定更新 kubectl rollout pause deployment/nginx-deployment ```
李智
2025年3月17日 13:28
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码