创建deployment的资源对象文件 [root@master ~]# cd config/ [root@master config]# vim mydeploy.yaml --- kind: Deployment apiVersion: apps/v1 metadata: name: myweb spec: replicas: 2 #副本数量 selector: #标签选择器,管理含有哪个标签的pod matchLabels: app: myhttp template: metadata: labels: #标签 app: myhttp #名字 spec: restartPolicy: Always containers: - name: apache image: registry:5000/myos:httpd ports: - name: protocol: TCP containerPort: 80 [root@master config]# kubectl apply -f mydeploy.yaml [root@master config]# kubectl get deployments.apps NAME READY UP-TO-DATE AVAILABLE AGE myweb 2/2 2 2 13s [root@master config]# kubectl get replicasets.apps NAME DESIRED CURRENT READY AGE myweb-7d6b5866cb 2 2 2 17s [root@master config]# kubectl get pods NAME READY STATUS RESTARTS AGE myweb-7d6b5866cb-2zvck 1/1 Running 0 22s myweb-7d6b5866cb-rc5hh 1/1 Running 0 22s #服务发布时,不会直接发布pod,而是pod前面加个service,创建服务访问集群 [root@master config]# vim websvc.yaml --- kind: Service apiVersion: v1 metadata: name: websvc spec: type: ClusterIP clusterIP: 10.245.1.81 selector: app: myhttp ports: - protocol: TCP port: 80 targetPort: 80 [root@master config]# kubectl apply -f websvc.yaml [root@master config]# curl 10.245.1.81 Welcome to The Apache. # 自维护自治理 [root@master config]# kubectl get pods NAME READY STATUS RESTARTS AGE myweb-7d6b5866cb-2zvck 1/1 Running 0 2m21s myweb-7d6b5866cb-rc5hh 1/1 Running 0 2m21s # Pod 被删除后,Deployment 会自动创建新的 Pod 来维护集群的完整性 [root@master config]# kubectl delete pod myweb-7d6b5866cb-2zvck [root@master config]# kubectl get pods NAME READY STATUS RESTARTS AGE myweb-7d6b5866cb-4q5rk 1/1 Running 0 2s myweb-7d6b5866cb-rc5hh 1/1 Running 0 2m36s # 动态更新集群副本数量 [root@master config]# kubectl scale deployment myweb --replicas=6 [root@master config]# kubectl get pods [root@master config]# kubectl scale deployment myweb --replicas=2 [root@master config]# kubectl get pods 以上实现的这些功能自维护自治理,调整pod数量是replicaset做的,deployment创建了replicaset;使用deployment主要是因为replicaset有一个限制,它里面只能有一个pod模板,在生产环境,需要进行业务变更(更新,升级,迭代)时,有时需要调整模板,只能删了重写,但是不可避免会造成业务的中断,重写的内容页没有经过测试,部署应用很不方便,所以后面为了适应生产环境的要求,引进了deployment,可以创建多个replicaset,提供滚动更新的策略
创建employment资源对象文件
最新推荐文章于 2024-10-15 17:38:17 发布
文章演示了在Kubernetes中创建Deployment资源对象,用于管理ReplicaSet和Pod,确保服务的高可用性。通过Deployment可以实现Pod的自动创建、删除和数量调整,以及无中断的服务滚动更新,展示了Kubernetes的自动化运维能力。
摘要由CSDN通过智能技术生成