创建employment资源对象文件

创建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,提供滚动更新的策略
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值