美文网首页
【k8s-9】--深入pod对象

【k8s-9】--深入pod对象

作者: 一个热爱生活的好少年 | 来源:发表于2018-12-27 16:23 被阅读0次

    虚拟机级别的相关属性都是pod级别的:描述机器整体。

    pod几个重要字段的含义和用法:

    #NodeSelector:是一个供用户将pod与Node进行绑定的字段
    apiVersion: v1
    kind: Pod
    ...
    spec:
     nodeSelector:
       disktype: ssd
    #这样的配置意味pod永远自能运行在携带ssd标签的节点上。
    

    NodeName:一旦Pod的这个字段被赋值,k8s会以为Pod已经经过调度了用于测试。

    HostAliases:定义Pod的host文件。/etc/hosts里面的内容。

    apiVersion: v1
    kind: Pod
    ...
    spec:
      hostAliases:
      - ip: "10.1.2.3"
        hostnames:
        - "foo.remote"
        - "bar.remote"
    ...
    #最后的效果
    cat /etc/hosts
    # Kubernetes-managed hosts file.
    127.0.0.1 localhost
    ...
    10.244.135.10 hostaliases-pod
    10.1.2.3 foo.remote
    10.1.2.3 bar.remote
    
    

    例子: shareProcessNamespace: true

    # 在这个文件中,定义了两个容器:一个是nginx,一个开启了tty和stdin的的容器。其实等同于docker run中的 -it(-i:stdin -t:tty)
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      shareProcessNamespace: true
      containers:
      - name: nginx
        image: nginx
      - name: shell
        image: busybox
        stdin: true
        tty: true
    
    #创建
    $ kubectl create -f nginx.yaml
    #链接shell容器的tty
    $ kubectl attach -it nginx -c shell
    #查看进程。也就是在哟个pod上可以看到里面所有容器的进程。因为他们呢共享一个PID Namespace。
    $ kubectl attach -it nginx -c shell
    / # ps ax
    PID   USER     TIME  COMMAND
        1 root      0:00 /pause
        8 root      0:00 nginx: master process nginx -g daemon off;
       14 101       0:00 nginx: worker process
       15 root      0:00 sh
       21 root      0:00 ps ax
    
    

    k8s项目对container的定义:image镜像,Command(启动命令),workingDir(容器的工作目录),Port(容器开发端口),volumeMounts(容器挂载的Volume)。

    1.ImagePullPolicy字段:Always 镜像拉去策略。默认是每创建就拉去一次。
    2.Lifecycle字段:容器状态发生变化时触发一系列”钩子“

    apiVersion: v1
    kind: Pod
    metadata:
      name: lifecycle-demo
    spec:
      containers:
      - name: lifecycle-demo-container
        image: nginx
        lifecycle:
          #容器启动后立即执行
          postStart:
            exec:
              command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
          #容器被杀死前
          preStop:
            exec:
              command: ["/usr/sbin/nginx","-s","quit"]
    

    总结:关于pod的状态以及含义

    相关文章

      网友评论

          本文标题:【k8s-9】--深入pod对象

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