ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

k8s之pod讲解

2022-02-27 14:00:47  阅读:169  来源: 互联网

标签:容器 kubectl yaml nginx 讲解 pod k8s Pod


  什么是Pod?

   Pod 是一组紧密关联的容器集合,它由一组、一个或多个容器组成,每个Pod还包含了一个Pause容器,Pause容器是Pod的父容器,主要负责僵尸进程的回收管理,通过Pause容器可以使同一个Pod里面的 多个容器共享存储、网络、PID、IPC等。   定义一个Pod    [root@k8s-master01 ~]# vim nginx1.yaml    apiVersion: v1   # Api的版本号
   kind: Pod        # 定义类型
   metadata:        # 元数据
     name: nginx    # pod名称,命名规范需符合RFC 1035规范
     labels:        # 自定义标签
       app: nginx
   spec:            # 定义容器的详细信息
     containers:    # 容器列表
     - name: nginx  # 容器名称,需符合RFC 1035规范
       image: nginx # 容器所用镜像
       ports:       # 容器要暴露的端口号列表
       - containerPort: 80  端口号
   [root@k8s-master01 ~]# kubectl create -f nginx1.yaml    #创建pod
  

       kubectl get pod nginx -o yaml

      #以yaml格式显示pod的详细信息

   kubectl get pod --show-labels

      #根据yaml文件里定义的标签筛选出符合条件的pod

       kubectl get rc,service

   #查看rc和service列表

      kubectl describe node k8s-master

     #显示node的详细信息

   kubectl describe pod nginx

   #显示pod的详细信息

   kubectl delete -f nginx1.yaml

   #使用删除yaml文件的方式删除pod

 

   kubectl delete pod --all

     #删除所有pod

 

 

  

 

      #进入某个容器

 

   #查看容器日志

 

   #实时查看容器日志,想当于tail -f命令退出ctrl+c

 

   #打开了一个新的yaml文件,在线修改,修改完退出即更新

 

     #将容器80端口映射本地521端口

 

   #查看命名空间,默认创建的pod都在default下,也可创建新的命名空间。

  

 

 

        #删除命名空间biubiubiu     

      Pod生命周期跟Pod重启策略

     
           #pod整个生命周期中的各种状态

 

 

  pod的重启策略

  变量Phase的取值还取决于结构体PodSpec中的RestartPolicy变量,这个RestartPolicy变量是用来设置Pod中容器重启策略的,包括三个可选值,分别是Always、OnFailure和Never。

  Always:当容器失效时,由kubelet自动重启容器。

  OnFailure:当容器终止运行或以不正常情况退出(退出码非0),由kubelet自动重启该容器。

  Never:不对容器设置重启策略。

  Pod探针

  startupProbe:

   k8s1.16版本后新加的探测方式,用于判断容器内应用程序是否已经启动,如果配置了startupProbe就会先禁止其他的探测,直到它成功为止,成功后将不在进行探测。

   LivenessProbe:

   用于探测容器是否运行,如果探测失败,kubelet会根据配置的重启策略进行相应的处理。若没有配置该探针,默认就是success。

   存活性探测。判断pod是否需要重启。

   ReadinessProbe:一般用于探测容器内的程序是否健康,它的返回值如果为success,那么就代表这个容器已经完成启动,并且程序已经是

可以接受流量的状态。

   就绪性探测。判断pod是否能够提供正常服务。

  Pod的探测方式

  ExecAction

  在容器内执行一个命令,如果返回值为0,则认为容器健康。

  TcpSocketAction

  通过TCP连接检查容器内的端口是否是通的,如果是通的就认为容器健康。

  HttpGetAction

  通过应该程序暴露的API地址来检查程序是否是正常的,如果状态码为200-400之间,则认为容器健康。

  Pod退出流程

  用户执行删除操作    kubectl delete pod nginx 

  pod状态会变成Terminating状态(这种状态停留默认时间为30秒)

  在30秒期间,会从Endpoint中删除该pod的IP地址,最后执行yaml文件中Prestop命令。

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

标签:容器,kubectl,yaml,nginx,讲解,pod,k8s,Pod
来源: https://www.cnblogs.com/xhbiu/p/15937042.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有