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.