• K8s常见示例


    手动调整pod数量

    • 对yaml文件改replicas数量
    • 在dashboard改deployment的pod值
    • 通过kubectl scale命令
    • 通过kubectl edit 编辑deployment
      kubectl edit deployment danran-nginx-deployment -n danran

    kubectl scale

    kubectl scale 对运行在k8s 环境中的pod 数量进行扩容(增加)或缩容(减小)

    当前pod数量
    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               1/1     1            1           18h
    danran-tomcat-app1-deployment-label   1/1     1            1           19h
    
    执行扩容/缩容
    root@master1:~# kubectl scale deployment/danran-nginx-deployment --replicas=2 -n danran
    deployment.apps/danran-nginx-deployment scaled
    
    验证手动扩容结果
    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           18h
    danran-tomcat-app1-deployment-label   1/1     1            1           19h
    

    HPA自动伸缩pod数量

    kubectl autoscale 自动控制在k8s集群中运行的pod数量(水平自动伸缩),需要提前设置pod范围及触发条件

    控制管理器默认每隔15s(可以通过–horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况
    支持以下三种metrics指标类型:
        ->预定义metrics(比如Pod的CPU)以利用率的方式计算
        ->自定义的Pod metrics,以原始值(raw value)的方式计算
        ->自定义的object metrics
    支持两种metrics查询方式:
        ->Heapster
        ->自定义的REST API
    支持多metrics
    

    准备metrics-server

    使用metrics-server作为HPA数据源(metrics-server版本为v0.3.6)
    https://github.com/kubernetes-incubator/metrics-server
    https://github.com/kubernetes-sigs/metrics-server/tree/v0.3.6

    clone 代码
    root@master1:/usr/local/src# git clone https://github.com/kubernetes-sigs/metrics-server.git
    root@master1:/usr/local/src# ls
    metrics-server-0.3.6
    root@master1:/usr/local/src# cd metrics-server-0.3.6/
    
    准备image
    • google镜像仓库
      docker pull k8s.gcr.io/metrics-server-amd64:v0.3.6
    • 阿里云镜像仓库
      docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6

    将metrics-server-amd64:v0.3.6 image 上传到harbor

    root@master1:~/package# docker tag mirrorgooglecontainers/metrics-server-amd64:v0.3.6 harbor.linux.com/baseimages/metrics-server-amd64:v0.3.6
    root@master1:~/package# docker push harbor.linux.com/baseimages/metrics-server-amd64:v0.3.6
    The push refers to repository [harbor.linux.com/baseimages/metrics-server-amd64]
    7bf3709d22bb: Pushed 
    932da5156413: Pushed 
    v0.3.6: digest: sha256:c9c4e95068b51d6b33a9dccc61875df07dc650abbf4ac1a19d58b4628f89288b size: 738
    
    修改metrics-server yaml文件
    root@master1:/usr/local/src/metrics-server-0.3.6/deploy/1.8+# pwd
    /usr/local/src/metrics-server-0.3.6/deploy/1.8+
    root@master1:/usr/local/src/metrics-server-0.3.6/deploy/1.8+# ls
    aggregated-metrics-reader.yaml  auth-delegator.yaml  auth-reader.yaml  metrics-apiservice.yaml  metrics-server-deployment.yaml  metrics-server-service.yaml  resource-reader.yaml
    
    修改image为harbor镜像
    root@master1:/usr/local/src/metrics-server-0.3.6/deploy/1.8+# cat metrics-server-deployment.yaml 
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: metrics-server
      namespace: kube-system
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: metrics-server
      namespace: kube-system
      labels:
        k8s-app: metrics-server
    spec:
      selector:
        matchLabels:
          k8s-app: metrics-server
      template:
        metadata:
          name: metrics-server
          labels:
            k8s-app: metrics-server
        spec:
          serviceAccountName: metrics-server
          volumes:
          # mount in tmp so we can safely use from-scratch images and/or read-only containers
          - name: tmp-dir
            emptyDir: {}
          containers:
          - name: metrics-server
            image: harbor.linux.com/baseimages/metrics-server-amd64:v0.3.6
            imagePullPolicy: Always
            volumeMounts:
            - name: tmp-dir
              mountPath: /tmp
    
    创建pod
    root@master1:/usr/local/src/metrics-server-0.3.6/deploy/1.8+# kubectl apply -f .
    clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
    clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
    rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
    apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
    serviceaccount/metrics-server created
    deployment.apps/metrics-server created
    service/metrics-server created
    clusterrole.rbac.authorization.k8s.io/system:metrics-server created
    clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
    

    验证 metrics-server pod是否运行

    root@master1:/usr/local/src/metrics-server-0.3.6/deploy/1.8+# kubectl get pod -A
    NAMESPACE              NAME                                                   READY   STATUS    RESTARTS   AGE
    danran                 danran-nginx-deployment-5f4c68cd88-8ghrp               1/1     Running   0          55m
    danran                 danran-nginx-deployment-5f4c68cd88-ld4gp               1/1     Running   0          19h
    danran                 danran-tomcat-app1-deployment-label-557cd56c58-s295s   1/1     Running   0          20h
    default                bash-b879cb84b-5k5t8                                   1/1     Running   0          23h
    default                busybox                                                1/1     Running   80         3d8h
    default                net-test2-565b5f575-b28kf                              1/1     Running   2          3d22h
    default                net-test2-565b5f575-h692c                              1/1     Running   2          4d
    default                net-test2-565b5f575-rlcwz                              1/1     Running   1          4d
    default                net-test2-565b5f575-wwkl2                              1/1     Running   1          3d22h
    kube-system            coredns-85bd4f9784-95qcb                               1/1     Running   1          3d7h
    kube-system            kube-flannel-ds-amd64-4dvn9                            1/1     Running   1          4d1h
    kube-system            kube-flannel-ds-amd64-6zk8z                            1/1     Running   1          4d1h
    kube-system            kube-flannel-ds-amd64-d54j4                            1/1     Running   1          4d1h
    kube-system            kube-flannel-ds-amd64-hmnsj                            1/1     Running   1          3d23h
    kube-system            kube-flannel-ds-amd64-k52kz                            1/1     Running   1          4d1h
    kube-system            kube-flannel-ds-amd64-q42lh                            1/1     Running   2          4d1h
    kube-system            metrics-server-6dc4d646fb-5gf7n                        1/1     Running   0          105s
    kubernetes-dashboard   dashboard-metrics-scraper-665dccf555-xlsm2             1/1     Running   1          3d20h
    kubernetes-dashboard   kubernetes-dashboard-6d489b6474-h7cqw                  1/1     Running   1          3d19h
    
    验证metrics-server pod

    验证metrics-server 是否采集到node数据

    root@master1:~# kubectl top nodes
    NAME            CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
    10.203.104.20   44m          1%     2278Mi          31%       
    10.203.104.21   31m          0%     777Mi           10%       
    10.203.104.22   45m          1%     706Mi           9%        
    10.203.104.26   28m          0%     488Mi           6%        
    10.203.104.27   26m          0%     799Mi           10%       
    10.203.104.28   29m          0%     538Mi           7% 
    

    验证metrics-server 是否采集到pod数据

    root@master1:~# kubectl top pods -n danran
    NAME                                                   CPU(cores)   MEMORY(bytes)   
    danran-nginx-deployment-5f4c68cd88-8ghrp               0m           3Mi             
    danran-nginx-deployment-5f4c68cd88-ld4gp               0m           4Mi             
    danran-tomcat-app1-deployment-label-557cd56c58-s295s   1m           265Mi
    
    修改controller-manager启动参数

    通过命令配置扩缩容

    查看需要配置扩缩容的deployment为danran-tomcat-app1-deployment-label

    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           20h
    danran-tomcat-app1-deployment-label   1/1     1            1           20h
    

    kubectl autoscale 配置自动扩缩容

    root@master1:~# kubectl autoscale deployment/danran-tomcat-app1-deployment-label  --min=2 --max=10 --cpupercent=80 -n danran
    horizontalpodautoscaler.autoscaling/danran-tomcat-app1-podautoscalor created
    

    验证信息

    root@master1:~# kubectl describe deployment/danran-tomcat-app1-deployment-label -n danran
    desired 最终期望处于READY状态的副本数
    updated 当前完成更新的副本数
    total 总计副本数
    available 当前可用的副本数
    unavailable 不可用副本数
    

    yaml文件中定义扩缩容配置

    查看需要配置扩缩容的deployment为danran-tomcat-app1-deployment-label

    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           20h
    danran-tomcat-app1-deployment-label   1/1     1            1           20h
    

    在tomcat yaml 同级目录下定义hpa.yaml文件

    root@master1:/opt/data/yaml/danran/tomcat-app1# ls
    hpa.yaml  tomcat-app1.yaml
    
    root@master1:/opt/data/yaml/danran/tomcat-app1# cat hpa.yaml 
    apiVersion: autoscaling/v1
    kind: HorizontalPodAutoscaler
    metadata:
      namespace: danran
      name: danran-tomcat-app1-podautoscalor
      labels:
        app: danran-tomcat-app1
        version: v2beta1
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: danran-tomcat-app1-deployment-label
      minReplicas: 2
      maxReplicas: 20
      targetCPUUtilizationPercentage: 60
    

    执行HPA pod

    root@master1:/opt/data/yaml/danran/tomcat-app1# kubectl apply -f hpa.yaml 
    horizontalpodautoscaler.autoscaling/danran-tomcat-app1-podautoscalor created
    

    验证HPA

    扩容前

    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           20h
    danran-tomcat-app1-deployment-label   1/1     1            1           20h
    

    扩容后

    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           20h
    danran-tomcat-app1-deployment-label   2/2     2            2           20h
    

    查看hpa的状态

    root@master1:~# kubectl get hpa -n danran
    NAME                               REFERENCE                                        TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
    danran-tomcat-app1-podautoscalor   Deployment/danran-tomcat-app1-deployment-label   0%/60%    2         20        2          3m31s
    
    root@master1:~# kubectl describe hpa danran-tomcat-app1-podautoscalor -n danran
    

    动态修改资源内容kubectl edit

    用于临时修改某些配置后需要立即生效的场景

    获取修改调整资源的deployment
    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           21h
    danran-tomcat-app1-deployment-label   4/4     4            4           22h
    
    修改deployment的replicas 副本数
    root@master1:~# kubectl edit deployment danran-tomcat-app1-deployment-label -n danran
    deployment.apps/danran-tomcat-app1-deployment-label edited
    
    验证副本数是否更新
    root@master1:~# kubectl get deployment -n danran
    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    danran-nginx-deployment               2/2     2            2           21h
    danran-tomcat-app1-deployment-label   3/3     3            3           22h
    

    定义node资源标签

    lable是一个键值对,创建pod的时候会查询那些node有这个标签,只会将pod创建在符合指定label值的node节点上。

    查看当前node label

    root@master1:~# kubectl describe node 10.203.104.26
    Name:               10.203.104.26
    Roles:              node
    Labels:             beta.kubernetes.io/arch=amd64
                        beta.kubernetes.io/os=linux
                        kubernetes.io/arch=amd64
                        kubernetes.io/hostname=10.203.104.26
                        kubernetes.io/os=linux
                        kubernetes.io/role=node
    Annotations:        flannel.alpha.coreos.com/backend-data: {"VtepMAC":"9e:4a:2f:85:86:84"}
                        flannel.alpha.coreos.com/backend-type: vxlan
                        flannel.alpha.coreos.com/kube-subnet-manager: true
                        flannel.alpha.coreos.com/public-ip: 10.203.104.26
                        node.alpha.kubernetes.io/ttl: 0
                        volumes.kubernetes.io/controller-managed-attach-detach: true
    CreationTimestamp:  Sat, 13 Jun 2020 18:57:24 +0800
    Taints:             <none>
    Unschedulable:      false
    Lease:
      HolderIdentity:  10.203.104.26
      AcquireTime:     <unset>
      RenewTime:       Wed, 17 Jun 2020 22:15:40 +0800
    Conditions:
      Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
      ----             ------  -----------------                 ------------------                ------                       -------
      MemoryPressure   False   Wed, 17 Jun 2020 22:15:44 +0800   Sun, 14 Jun 2020 22:35:51 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory available
      DiskPressure     False   Wed, 17 Jun 2020 22:15:44 +0800   Sun, 14 Jun 2020 22:35:51 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressure
      PIDPressure      False   Wed, 17 Jun 2020 22:15:44 +0800   Sun, 14 Jun 2020 22:35:51 +0800   KubeletHasSufficientPID      kubelet has sufficient PID available
      Ready            True    Wed, 17 Jun 2020 22:15:44 +0800   Sun, 14 Jun 2020 22:35:51 +0800   KubeletReady                 kubelet is posting ready status. AppArmor enabled
    Addresses:
      InternalIP:  10.203.104.26
      Hostname:    10.203.104.26
    Capacity:
      cpu:                4
      ephemeral-storage:  52206Mi
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             8168080Ki
      pods:               110
    Allocatable:
      cpu:                3800m
      ephemeral-storage:  48194020885
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             7451280Ki
      pods:               110
    System Info:
      Machine ID:                 202eb555a5e147b4a4a683e1b0869d19
      System UUID:                1BA73542-2622-4635-CDFF-A19A2B87390B
      Boot ID:                    57bcbc34-a662-477d-a994-1d4986ede5c8
      Kernel Version:             4.15.0-106-generic
      OS Image:                   Ubuntu 18.04.4 LTS
      Operating System:           linux
      Architecture:               amd64
      Container Runtime Version:  docker://19.3.8
      Kubelet Version:            v1.17.4
      Kube-Proxy Version:         v1.17.4
    PodCIDR:                      10.20.3.0/24
    PodCIDRs:                     10.20.3.0/24
    Non-terminated Pods:          (6 in total)
      Namespace                   Name                                                    CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
      ---------                   ----                                                    ------------  ----------  ---------------  -------------  ---
      danran                      danran-nginx-deployment-5f4c68cd88-ld4gp                1 (26%)       2 (52%)     512Mi (7%)       2Gi (28%)      21h
      danran                      danran-tomcat-app1-deployment-label-78c95777df-48j4m    1 (26%)       2 (52%)     512Mi (7%)       2Gi (28%)      11m
      default                     net-test2-565b5f575-b28kf                               0 (0%)        0 (0%)      0 (0%)           0 (0%)         4d
      default                     net-test2-565b5f575-h692c                               0 (0%)        0 (0%)      0 (0%)           0 (0%)         4d2h
      kube-system                 kube-flannel-ds-amd64-q42lh                             100m (2%)     100m (2%)   50Mi (0%)        50Mi (0%)      4d3h
      kube-system                 metrics-server-6dc4d646fb-5gf7n                         0 (0%)        0 (0%)      0 (0%)           0 (0%)         122m
    Allocated resources:
      (Total limits may be over 100 percent, i.e., overcommitted.)
      Resource           Requests      Limits
      --------           --------      ------
      cpu                2100m (55%)   4100m (107%)
      memory             1074Mi (14%)  4146Mi (56%)
      ephemeral-storage  0 (0%)        0 (0%)
    Events:              <none>
    


    自定义node label并验证

    添加project=jevon的label
    root@master1:~# kubectl label node 10.203.104.27 project=jevon
    node/10.203.104.27 labeled
    
    添加project=danran的label
    root@master1:~# kubectl label node 10.203.104.26 project=danran
    node/10.203.104.26 labeled
    
    验证确认project=danran label
    root@master1:~# kubectl describe node 10.203.104.26
    Name:               10.203.104.26
    Roles:              node
    Labels:             beta.kubernetes.io/arch=amd64
                        beta.kubernetes.io/os=linux
                        kubernetes.io/arch=amd64
                        kubernetes.io/hostname=10.203.104.26
                        kubernetes.io/os=linux
                        kubernetes.io/role=node
                        project=danran
    Annotations:        flannel.alpha.coreos.com/backend-data: {"VtepMAC":"9e:4a:2f:85:86:84"}
                        flannel.alpha.coreos.com/backend-type: vxlan
                        flannel.alpha.coreos.com/kube-subnet-manager: true
                        flannel.alpha.coreos.com/public-ip: 10.203.104.26
                        node.alpha.kubernetes.io/ttl: 0
                        volumes.kubernetes.io/controller-managed-attach-detach: true
    

    yaml引用node label

    在Deployment中最后添加nodeSelector.project: danran 字段选择project为danran 的label
    root@master1:/opt/data/yaml/danran/tomcat-app1# cat tomcat-app1.yaml 
    kind: Deployment
    apiVersion: apps/v1
    metadata:
      labels:
        app: danran-tomcat-app1-deployment-label 
      name: danran-tomcat-app1-deployment-label
      namespace: danran
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: danran-tomcat-app1-selector
      template:
        metadata:
          labels:
            app: danran-tomcat-app1-selector
        spec:
          containers:
          - name: danran-tomcat-app1-container
            image: harbor.linux.com/danran/tomcat-app1:v2
            #imagePullPolicy: IfNotPresent
            imagePullPolicy: Always
            ports:
            - containerPort: 8080
              protocol: TCP
              name: http
            env:
            - name: "password"
              value: "123456"
            - name: "age"
              value: "18"
            resources:
              limits:
                cpu: 2
                memory: 2Gi
              requests:
                cpu: 1
                memory: 512Mi
            volumeMounts:
            - name: danran-images
              mountPath: /usr/local/nginx/html/webapp/images
              readOnly: false
            - name: danran-static
              mountPath: /usr/local/nginx/html/webapp/static
              readOnly: false
          volumes:
          - name: danran-images
            nfs:
              server: 10.203.104.30
              path: /data/danran/images
          - name: danran-static
            nfs:
              server: 10.203.104.30
              path: /data/danran/static
          nodeSelector:
            project: danran
    
    ---
    kind: Service
    apiVersion: v1
    metadata:
      labels:
        app: danran-tomcat-app1-service-label
      name: danran-tomcat-app1-service
      namespace: danran
    spec:
      type: NodePort
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 8080
        nodePort: 40004
      selector:
        app: danran-tomcat-app1-selector
    

    应用yaml文件

    root@master1:/opt/data/yaml/danran/tomcat-app1# kubectl apply -f tomcat-app1.yaml 
    deployment.apps/danran-tomcat-app1-deployment-label configured
    service/danran-tomcat-app1-service unchanged
    

    验证所有tomcat的pod全在label project=danran的Node节点上

    root@master1:~# kubectl get pod -A -o wide
    

    删除自定义node label

    删除自定义的project label
    root@master1:~# kubectl label nodes 10.203.104.26 project-
    node/10.203.104.26 labeled
    

    业务镜像版本升级及回滚

    在指定的deployment中通过kubectl set image指定新版本的 镜像:tag 来实现更新代码的目的。

    构建三个不同版本的nginx镜像,第一次使用v1版本,后组逐渐升级到v2与v3,测试镜像版本升级与回滚操作

    升级到镜像到指定版本

    v1版本

    v1版本,--record=true为记录执行的kubectl
    root@master1:/opt/data/yaml/danran/tomcat-app1# kubectl apply -f tomcat-app1.yaml --record=true
    deployment.apps/danran-tomcat-app1-deployment-label created
    service/danran-tomcat-app1-service created
    

    升级到v5版本

    容器的name为danran-tomcat-app1-container,可在tomcat-app1.yaml文件中查看
    root@master1:~# kubectl set image deployment/danran-tomcat-app1-deployment-label danran-tomcat-app1-container=harbor.linux.com/danran/tomcat-app1:v5 -n danran
    deployment.apps/danran-tomcat-app1-deployment-label image updated
    

    查看历史版本信息

    root@master1:~# kubectl rollout history deployment danran-tomcat-app1-deployment-label -n danran
    deployment.apps/danran-tomcat-app1-deployment-label 
    REVISION  CHANGE-CAUSE
    2         kubectl apply --filename=tomcat-app1.yaml --record=true
    3         kubectl apply --filename=tomcat-app1.yaml --record=true
    4         kubectl apply --filename=tomcat-app1.yaml --record=true
    

    回滚到上一个版本

    将deployment 的danran-tomcat-app1-deployment-label 回滚到上个版本
    root@master1:~# kubectl rollout undo deployment danran-tomcat-app1-deployment-label -n danran
    deployment.apps/danran-tomcat-app1-deployment-label rolled back
    

    回滚到指定版本

    查看需要回滚到的版本

    root@master1:~# kubectl rollout history deployment danran-tomcat-app1-deployment-label -n danran
    deployment.apps/danran-tomcat-app1-deployment-label 
    REVISION    CHANGE-CAUSE
    2               kubectl apply --filename=tomcat-app1.yaml --record=true
    3               kubectl apply --filename=tomcat-app1.yaml --record=true
    4               kubectl apply --filename=tomcat-app1.yaml --record=true
    

    回滚到REVISION 2

    root@master1:~# kubectl rollout undo deployment danran-tomcat-app1-deployment-label --to-revision=2 -n danran
    deployment.apps/danran-tomcat-app1-deployment-label rolled back
    

    回滚后的版本

    root@master1:~# kubectl rollout history deployment danran-tomcat-app1-deployment-label -n danran
    deployment.apps/danran-tomcat-app1-deployment-label 
    REVISION    CHANGE-CAUSE
    3               kubectl apply --filename=tomcat-app1.yaml --record=true
    4               kubectl apply --filename=tomcat-app1.yaml --record=true
    5               kubectl apply --filename=tomcat-app1.yaml --record=true
    

    配置主机为封锁状态且不参与调度

    设置10.203.104.27不参与pod调度

    root@master1:~# kubectl cordon 10.203.104.27
    node/10.203.104.27 cordoned
    
    root@master1:~# kubectl get node
    NAME            STATUS                     ROLES    AGE    VERSION
    10.203.104.20   Ready,SchedulingDisabled   master   4d5h   v1.17.4
    10.203.104.21   Ready,SchedulingDisabled   master   4d5h   v1.17.4
    10.203.104.22   Ready,SchedulingDisabled   master   4d3h   v1.17.4
    10.203.104.26   Ready                      node     4d5h   v1.17.4
    10.203.104.27   Ready,SchedulingDisabled   node     4d5h   v1.17.4
    10.203.104.28   Ready                      node     4d5h   v1.17.4
    

    设置10.203.104.27参与pod调度

    root@master1:~# kubectl uncordon 10.203.104.27
    node/10.203.104.27 uncordoned
    
    root@master1:~# kubectl get node
    NAME            STATUS                     ROLES    AGE    VERSION
    10.203.104.20   Ready,SchedulingDisabled   master   4d5h   v1.17.4
    10.203.104.21   Ready,SchedulingDisabled   master   4d5h   v1.17.4
    10.203.104.22   Ready,SchedulingDisabled   master   4d3h   v1.17.4
    10.203.104.26   Ready                      node     4d5h   v1.17.4
    10.203.104.27   Ready                      node     4d5h   v1.17.4
    10.203.104.28   Ready                      node     4d5h   v1.17.4
    

    etcd删除pod

    查看和namespace相关的数据

    root@etcd1:~# etcdctl get /registry/ --prefix --keys-only | grep danran
    

    从etcd查看具体某个对象的数据

    root@etcd1:~# etcdctl get /registry/pods/danran/danran-nginx-deployment-5f4c68cd88-8ghrp
    

    删除etcd指定资源

    删除danran-nginx-deployment-5f4c68cd88-8ghrp pod,返回1为删除成功
    root@etcd1:~# etcdctl del /registry/pods/danran/danran-nginx-deployment-5f4c68cd88-8ghrp
    1
  • 相关阅读:
    文档搜索引擎 vofill
    angularjs搭建项目步骤 vofill
    KlipperBox:帮助新手快速上手 Klipper 固件(上位机系统)
    在任意地方拿到SpringBoot管理的类(也称@Autowired拿到的值为空)
    SpringBoot获取客户端请求的IP
    vue.config.js中关于css.loaderOptions作用和配置
    git 协同开发常用命令
    scss 中的指令@import 、@media 、@extend、@mixin 、@include、 占位符%
    vue项目中容器布局自动撑满和盒子内容超出隐藏滚动条
    vue中vuecil3关于eslint告警0 errors and 7 warnings potentially fixable with the `fix` option.
  • 原文地址:https://www.cnblogs.com/JevonWei/p/13185053.html
Copyright © 2020-2023  润新知