4 月 222020
 

启用kubectl命令自动补全

[root@k8s01 ~]# yum -y install bash-completion
[root@k8s01 ~]# source /usr/share/bash-completion/bash_completion
[root@k8s01 ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@k8s01 ~]# exit
logout

准备Deployment配置文件

[root@k8s01 ~]# vi nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.10
        ports:
        - containerPort: 80

应用Deployment配置文件

[root@k8s01 ~]# kubectl apply -f nginx-deployment.yaml 
deployment.apps/nginx-deployment created
[root@k8s01 ~]#

获取deployments列表和pods列表

[root@k8s01 ~]# kubectl get deployments.apps 
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           22s
[root@k8s01 ~]# 
[root@k8s01 ~]# kubectl get pods
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-cc5db57d4-5q9lz   1/1     Running   0          39s
nginx-deployment-cc5db57d4-dncbs   1/1     Running   0          39s
nginx-deployment-cc5db57d4-gsp6l   1/1     Running   0          39s
[root@k8s01 ~]#

查看deployment详情(deployment属于controller的一种类型,通过replicaset来管理pod,Events记录replicaset启动过程)

[root@k8s01 ~]# kubectl describe deployments.apps nginx-deployment 
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Tue, 21 Apr 2020 10:33:38 +0000
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.17.10
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-cc5db57d4 (3/3 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  85s   deployment-controller  Scaled up replica set nginx-deployment-cc5db57d4 to 3
[root@k8s01 ~]#

获取replicaset列表(显示已就绪3个副本,Events为3个副本pod创建记录)

[root@k8s01 ~]# kubectl get replicasets.apps 
NAME                         DESIRED   CURRENT   READY   AGE
nginx-deployment-cc5db57d4   3         3         3       11m
[root@k8s01 ~]#

查看relicasets详情

[root@k8s01 ~]# kubectl describe replicasets.apps nginx-deployment-cc5db57d4 
Name:           nginx-deployment-cc5db57d4
Namespace:      default
Selector:       app=nginx,pod-template-hash=cc5db57d4
Labels:         app=nginx
                pod-template-hash=cc5db57d4
Annotations:    deployment.kubernetes.io/desired-replicas: 3
                deployment.kubernetes.io/max-replicas: 4
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/nginx-deployment
Replicas:       3 current / 3 desired
Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=nginx
           pod-template-hash=cc5db57d4
  Containers:
   nginx:
    Image:        nginx:1.17.10
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  13m   replicaset-controller  Created pod: nginx-deployment-cc5db57d4-gsp6l
  Normal  SuccessfulCreate  13m   replicaset-controller  Created pod: nginx-deployment-cc5db57d4-5q9lz
  Normal  SuccessfulCreate  13m   replicaset-controller  Created pod: nginx-deployment-cc5db57d4-dncbs
[root@k8s01 ~]#

获取pods列表(三个副本Pod都处于运行状态)

[root@k8s01 ~]# kubectl get pods
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-cc5db57d4-5q9lz   1/1     Running   0          15m
nginx-deployment-cc5db57d4-dncbs   1/1     Running   0          15m
nginx-deployment-cc5db57d4-gsp6l   1/1     Running   0          15m
[root@k8s01 ~]#

查看pods详情(Controolled By指明该pod由ReplicaSet控制生成,Events记录了该pod启动过程)

[root@k8s01 ~]# kubectl describe pods nginx-deployment-cc5db57d4-5q9lz
Name:         nginx-deployment-cc5db57d4-5q9lz
Namespace:    default
Priority:     0
Node:         k8s03/172.31.6.113
Start Time:   Tue, 21 Apr 2020 10:33:38 +0000
Labels:       app=nginx
              pod-template-hash=cc5db57d4
Annotations:  <none>
Status:       Running
IP:           10.244.2.17
IPs:
  IP:           10.244.2.17
Controlled By:  ReplicaSet/nginx-deployment-cc5db57d4
Containers:
  nginx:
    Container ID:   docker://e062b14bbf7670d5d3c45e983c88b36caa2ed3700fd03dbdb9adf06724fba9bf
    Image:          nginx:1.17.10
    Image ID:       docker-pullable://nginx@sha256:d81f010955749350ef31a119fb94b180fde8b2f157da351ff5667ae037968b28
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Tue, 21 Apr 2020 10:33:39 +0000
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-pkjh8 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-pkjh8:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-pkjh8
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  16m   default-scheduler  Successfully assigned default/nginx-deployment-cc5db57d4-5q9lz to k8s03
  Normal  Pulled     16m   kubelet, k8s03     Container image "nginx:1.17.10" already present on machine
  Normal  Created    16m   kubelet, k8s03     Created container nginx
  Normal  Started    16m   kubelet, k8s03     Started container nginx
[root@k8s01 ~]#

流程总结:

(1)用户通过kubectl创建Deployment。
(2)Deployment创建ReplicaSet。
(3)ReplicaSet创建Pod。

Sorry, the comment form is closed at this time.