zoukankan      html  css  js  c++  java
  • init pod RC RS deployment

    22  初始化容器 Init Container

    kubectl get pods --all-namespaces -o wide
    ssh node01
    docker ps |grep liveness-exec
    docker ps
    k8s.gcr.io/pause-amd64.3.1   就是infra容器

    docker ps |grep hrjr-web
    docker ps
    k8s.gcr.io/pause-amd64.3.1   就是infra容器

    infra容器就是网络共享命名空间的容器

    initpod1.yaml

    ---
    apiVersion: v1
    kind: Pod
    metadata:
      name: init-pod
      labels:
        app: init
    spec:
      initContainers:
        - name: init-myservice
          image: busybox
          command: ['sh', '-c', 'unit nslookup myservice; do echo waiting for myservice; sleep 2; done;']
        - name: init-mydb
          image: busybox
          command: ['sh','-c','until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
      containers:
        - name: main-container
          image: busybox
          command: ['sh','-c', 'echo The app is running! && sleep 3600']
     

    kubectl apply -f init-pod1.yaml



    initservice.yaml

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: myservice
    spec:
      ports:
      - protocol: TCP
        port: 80
        targetPort: 6379


    kubectl create -f initservice.yaml
    kubectl get pods
    kubectl get svc


    vi initservice.yaml

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: myservice
    spec:
      ports:
      - protocol: TCP
        port: 80
        targetPort: 6379

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mydb
    spec:
      ports:
      - protocol: TCP
        port: 80
        targetPort: 6378


    kubectl apply -f initservice.yaml



    initconfig.yaml

    ---
    apiVersion: v1
    kind: Pod
    metadata:
      name: init-demo
      labels:
        app: init
    spec:
      initContainers:
      - name: install
        image: busybox
        command:
        - wget
        - "-O"
        - "/work-dir/index.html"
        - http://www.baidu.com
        volumeMounts:
        - name: workdir
          mountPath: /work-dir
      containers:
        - name: nginx
          image: nginx
          ports:
          - containerPort: 80
          volumeMounts:
          - name: workdir
            mountPath: /usr/share/nginx/html
      volumes:
        - name: workdir
          emptyDir: {}

    kubectl create -f initconfig.yaml

    kubectl exec -it init-demo --/bin/bash



    23 Replication Controller 与 Replica Set

    RC && RS

    rc-demo.yaml

    ---
    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: rc-demo
      labels:
        app: rc
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: rc
        spec:
          containers:
          - name: nginx-demo
            image: nginx
            ports:
            - containerPort: 80


    kubectl create -f rc-demo.yaml
    kubectl get replicationcontroller
    简写:
    kubectl get rc
    kubectl describe rc rc-demo
    kubectl get pods

    修改副本数量为2个以后,更新rc-demo
    kubectl apply -f rc-demo.yaml
    kubectl edit rc rc-demo
    dashboard 控制面板 scale 修改pod数量

    在线升级nginx版本,滚动更新功能
    kubectl rolling-update rc-demo --image=nginx:1.7.9

    24 Deployment 的使用

    deploy-demo.yaml

    ---
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deploy
      labels:
        app: nginx-demo
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort: 80


    kubectl get rs

    ---
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deploy
      labels:
        app: nginx-demo
    spec:
      replicas: 3
      minReadySeconds: 5      #5秒钟后更新
      strategy:              
        type: RollingUpdate   #滚动更新
        rollingUpdate:
          maxSurge: 1         #更新中 比原pod数最多多1个出来
          maxUnavailable: 1   #更新中 最多允许1个pod不能提供服务
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80


    查看更新状态:
    kubectl apply -f deploy-demo.yaml
    kubectl rollout status deployment nginx-deploy   升级状态
    kubectl rollout pause deployment nginx-deploy    暂停升级
    kubectl rollout resume deployment nginx-deploy   恢复升级
    kubectl get rs
    kubectl get deployment
    kubectl describe deployment nginx-deploy

    kubectl rollout pause deployment nginx-deploy

    kubectl rollout history deployment nginx-deploy   查看更新历史

    kubectl apply -f deploy-demo.yaml --record=true    记录更新时使用的命令



    ---
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deploy
      labels:
        app: nginx-demo
    spec:
      replicas: 3
      revisionHistoryLimit: 15   #最小数量历史版本为 15个
      minReadySeconds: 5         #5秒钟后更新
      strategy:              
        type: RollingUpdate      #滚动更新
        rollingUpdate:
          maxSurge: 1            #更新中 比原pod数最多多1个出来
          maxUnavailable: 1      #更新中 最多允许1个pod不能提供服务
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80


    kubectl get rs   
    kubectl describe rs nginx-deploy-xxxyyy   
    Annotations:  deployment.kubernetes.io/revision=2   即是历史版本

    kubectl delete rs nginx-deploy-xxxyyy  删除pod
    kubectl rollout history deployment nginx-deploy

    回滚到上一个版本:
    kubectl rollout undo deployment nginx-deploy
    kubectl rollout status deployment nginx-deploy
    kubectl get deployment nginx-deploy
    kubectl get rs
    kubectl get pods
    kubectl describe pod nginx-deploy


    回滚到指定版本: 修改 yaml 文件

    回滚到 3 号版本:
    kubectl rollout undo deployment nginx-deploy --to-revision=3


    kubectl rollout history deployment nginx-deploy

  • 相关阅读:
    preflight
    vs调试的时候,加载dll非常慢的解决方法
    chrome blink render engine and the render mechanism
    Cache-control demestified
    IE文档模式和兼容模式
    canvas和SVG分析比较
    打败 IE 的葵花宝典:CSS Bug Table
    vi 编辑器
    JS高级 1
    特效四大家族
  • 原文地址:https://www.cnblogs.com/walkersss/p/11811159.html
Copyright © 2011-2022 走看看