美文网首页
《每天5分钟玩转 Kubernetes》5.1.1 运行 Dep

《每天5分钟玩转 Kubernetes》5.1.1 运行 Dep

作者: SlowGO | 来源:发表于2018-12-12 15:24 被阅读11次
    kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2
    
    deployment.apps/nginx-deployment created
    

    部署了2个副本的 nginx-deployment,容器的 image 为 nginx:1.7.9

    查看 deployment:

    kubectl get deployment nginx-deployment
    
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   2/2     2            2           6m22s
    

    显示2个副本都正常运行,下面看一下详细信息:

    kubectl describe deployment nginx-deployment
    

    返回信息:

    Name:                   nginx-deployment
    Namespace:              default
    CreationTimestamp:      Wed, 12 Dec 2018 06:46:42 +0000
    Labels:                 run=nginx-deployment
    Annotations:            deployment.kubernetes.io/revision: 1
    Selector:               run=nginx-deployment
    Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
    StrategyType:           RollingUpdate
    MinReadySeconds:        0
    RollingUpdateStrategy:  25% max unavailable, 25% max surge
    Pod Template:
      Labels:  run=nginx-deployment
      Containers:
       nginx-deployment:
        Image:        nginx:1.7.9
        Port:         <none>
        Host Port:    <none>
        Environment:  <none>
        Mounts:       <none>
      Volumes:        <none>
    Conditions:
      Type           Status  Reason
      ----           ------  ------
      Available      True    MinimumReplicasAvailable
      Progressing    True    NewReplicaSetAvailable
    OldReplicaSets:  <none>
    NewReplicaSet:   nginx-deployment-578fb949d8 (2/2 replicas created)
    Events:
      Type    Reason             Age    From                   Message
      ----    ------             ----   ----                   -------
      Normal  ScalingReplicaSet  7m22s  deployment-controller  Scaled up replica set nginx-deployment-578fb949d8 to 2
    

    内容比较易懂,其中 Conditions 下面有一条信息 NewReplicaSet: nginx-deployment-578fb949d8 (2/2 replicas created),说明创建了 ReplicaSet,名称是 nginx-deployment-578fb949d8,下面就看一下 ReplicaSet:

    kubectl describe replicaset nginx-deployment-578fb949d8
    

    返回信息:

    Name:           nginx-deployment-578fb949d8
    Namespace:      default
    Selector:       pod-template-hash=578fb949d8,run=nginx-deployment
    Labels:         pod-template-hash=578fb949d8
                    run=nginx-deployment
    Annotations:    deployment.kubernetes.io/desired-replicas: 2
                    deployment.kubernetes.io/max-replicas: 3
                    deployment.kubernetes.io/revision: 1
    Controlled By:  Deployment/nginx-deployment
    Replicas:       2 current / 2 desired
    Pods Status:    2 Running / 0 Waiting / 0 Succeeded / 0 Failed
    Pod Template:
      Labels:  pod-template-hash=578fb949d8
               run=nginx-deployment
      Containers:
       nginx-deployment:
        Image:        nginx:1.7.9
        Port:         <none>
        Host Port:    <none>
        Environment:  <none>
        Mounts:       <none>
      Volumes:        <none>
    Events:
      Type    Reason            Age   From                   Message
      ----    ------            ----  ----                   -------
      Normal  SuccessfulCreate  17m   replicaset-controller  Created pod: nginx-deployment-578fb949d8-5wpfx
      Normal  SuccessfulCreate  17m   replicaset-controller  Created pod: nginx-deployment-578fb949d8-jxxbr
    

    其中的 Controlled By 说明是由 Deployment/nginx-deployment 创建的,最下面的 Events 是日志,表明创建了2个 pod,看一下 pod 列表:

    kubectl get pod
    
    NAME                                   READY   STATUS    RESTARTS   AGE
    nginx-deployment-578fb949d8-5wpfx      1/1     Running   0          22m
    nginx-deployment-578fb949d8-jxxbr      1/1     Running   0          22m
    

    下面再看 pod 的详细信息:

    kubectl describe pod nginx-deployment-578fb949d8-5wpfx
    

    返回信息:

    Name:               nginx-deployment-578fb949d8-5wpfx
    Namespace:          default
    Priority:           0
    PriorityClassName:  <none>
    Node:               microk8s/10.0.2.15
    Start Time:         Wed, 12 Dec 2018 06:46:42 +0000
    Labels:             pod-template-hash=578fb949d8
                        run=nginx-deployment
    Annotations:        <none>
    Status:             Running
    IP:                 10.1.1.106
    Controlled By:      ReplicaSet/nginx-deployment-578fb949d8
    Containers:
      nginx-deployment:
        Container ID:   docker://e9431c0e17ee5c2171c2b1d34d39f02f65073120fdcbae109fd75cb9fab6143c
        Image:          nginx:1.7.9
        Image ID:       docker-pullable://nginx@sha256:e3456c851a152494c3e4ff5fcc26f240206abac0c9d794affb40e0714846c451
        Port:           <none>
        Host Port:      <none>
        State:          Running
          Started:      Wed, 12 Dec 2018 06:47:08 +0000
        Ready:          True
        Restart Count:  0
        Environment:    <none>
        Mounts:
          /var/run/secrets/kubernetes.io/serviceaccount from default-token-n44dv (ro)
    Conditions:
      Type              Status
      Initialized       True
      Ready             True
      ContainersReady   True
      PodScheduled      True
    Volumes:
      default-token-n44dv:
        Type:        Secret (a volume populated by a Secret)
        SecretName:  default-token-n44dv
        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  24m   default-scheduler  Successfully assigned default/nginx-deployment-578fb949d8-5wpfx to microk8s
      Normal  Pulling    24m   kubelet, microk8s  pulling image "nginx:1.7.9"
      Normal  Pulled     23m   kubelet, microk8s  Successfully pulled image "nginx:1.7.9"
      Normal  Created    23m   kubelet, microk8s  Created container
      Normal  Started    23m   kubelet, microk8s  Started container
    

    其中的 Controlled By 说明是 ReplicaSet/nginx-deployment-578fb949d8 创建的,Events 记录了 pod 的启动过程,如果出现问题,可以在这里查看原因。

    总结一下启动过程:

    1. 用户通过 kubectl 创建 deployment(nginx-deployment)
    2. deployment(nginx-deployment)创建了 replicaset(nginx-deployment-578fb949d8)
    3. replicaset(nginx-deployment-578fb949d8)创建了2个 pod (nginx-deployment-578fb949d8-5wpfx、nginx-deployment-578fb949d8-jxxbr)

    从中可以看到对象的命名方式:父对象名字 + 随机字符串

    相关文章

      网友评论

          本文标题:《每天5分钟玩转 Kubernetes》5.1.1 运行 Dep

          本文链接:https://www.haomeiwen.com/subject/nzfphqtx.html