• Kubernetes之Pod 控制器


    定义Pod的常用资源

     pods.spec.containers

    - name    <string>   #containers 的名字

      image    <string>  #镜像地址

      imagePullPolicy    <string>  #如果标签是latest  就是Always(总是下载镜像)  IfNotPresent(先看本地是否有此镜像,如果没有就下载) Never (就是使用本地镜像)

      ports    <[]Object>  #是给对象列表  可以暴露多个端口  可以对每个端口的属性定义 例如:(名称(可后期调用)端口号  协议  暴露在的地址上) 暴露端口只是提供额外信息的,不能限制系统是否真的暴露

       - containerPort 容器端口

         hostIP  主机地址(基本不会使用)

         hostPort 节点端口

         name 名称

         protocol  (默认是TCP)

      args  <[]string>   传递参数给command 相当于docker中的CMD

        command    <[]string> 相当于docker中的ENTRYPOINT (参考地址

    • 如果Pod不提供commandargs使用Container,则使用Docker镜像中的cmd或者ENTRYPOINT。

    • 如果Pod提供command但不提供args,则仅使用提供 command的。将忽略Docker镜像中定义EntryPoint和Cmd。

    • 如果Pod中仅提供args,则args将作为参数提供给Docker镜像中EntryPoint
    • 如果提供了commandargs,则Docker镜像中的ENTRYPOINT和CMD都将不会生效,Pod中的args将作为参数给command运行

     标签

    key=value

    • key:只能使用 字母 数字  _  -  . (只能以字母数字开头,不能超过63给字符)
    • value: 可以为空 只能使用 字母 数字开头
    #显示标签
    $ kubectl get pods --show-labels
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    jdk-94bcfc779-fs2cl      1/1       Running   0          8d        pod-template-hash=506797335,workload.user.cattle.io/workloadselector=deployment-default-jdk
    mysql-5ffdf958d9-7qdnv   1/1       Running   1          3d        pod-template-hash=1998951485,workload.user.cattle.io/workloadselector=deployment-default-mysql
    
    #-L 显示具有app标签的pod 并打印app标签下的值
    $ kubectl get pods --all-namespaces  -L app
    NAMESPACE         NAME                                    READY     STATUS        RESTARTS   AGE       APP
    cattle-alerting   alertmanager-649c5fc4d7-4hp9q           2/2       Running       0          1d        alertmanager
    cattle-system     cattle-cluster-agent-6d7c847588-f6cmt   1/1       Running       2          28d       cattle-cluster-agent
    cattle-system     cattle-node-agent-9m2ls                 1/1       Running       2          28d       cattle-agent
    cattle-system     cattle-node-agent-9ngfh                 1/1       Running       0          12d       cattle-agent
    cattle-system     cattle-node-agent-j862c                 1/1       Running       1          12d       cattle-agent
    cattle-system     cattle-node-agent-s8s75                 1/1       Running       1          12d       cattle-agent
    
    #-l 过滤那些pod具有app标签
    
    $ kubectl get pods --all-namespaces  -l app
    NAMESPACE         NAME                                    READY     STATUS    RESTARTS   AGE
    cattle-alerting   alertmanager-649c5fc4d7-4hp9q           2/2       Running   0          1d
    cattle-system     cattle-cluster-agent-6d7c847588-f6cmt   1/1       Running   2          28d
    cattle-system     cattle-node-agent-9m2ls                 1/1       Running   2          28d
    cattle-system     cattle-node-agent-9ngfh                 1/1       Running   0          12d
    
    #打标签
    $  kubectl label pod jdk-94bcfc779-fs2cl app=dev
    
    #修改标签 --overwrite
    $ kubectl label pod jdk-94bcfc779-fs2cl app=test --overwrite

    标签选择器

    • 等值关系标签选择器:=, == , !=  (kubectl get pods -l app=test,app=dev)
    • 集合关系标签选择器: KEY in (v1,v2,v3), KEY notin (v1,v2,v3)   !KEY (kubectl get pods -l "app in (test,dev)")

    许多资源支持内嵌字段

    • matchLabels: 直接给定建值
    • matchExpressions: 基于给定的表达式来定义使用标签选择器,{key:"KEY",operator:"OPERATOR",values:[V1,V2,....]}
    • 操作符: in notin:Values字段的值必须是非空列表  Exists NotExists:  Values字段的值必须是空列表

    节点选择器

    nodeSelector    <object>

    元数据中的annotations 资源注解

    annotations    <object>  与labels不同的是,他不能挑选资源对象,仅用于为对象提供元数据

  • 相关阅读:
    springboot Quartz 定时任务工具类
    java 发邮件 代码
    spring boot 整合 shiro 权限框架
    java 读取xml
    flowable 报错 Waiting for changelog lock....
    微服务 springcloud Alibaba 阿里组件 项目源码
    Java 读取汉字拼音
    syslog how to
    c++ 字符串总结
    aptget 总结
  • 原文地址:https://www.cnblogs.com/xzkzzz/p/9519489.html
Copyright © 2020-2023  润新知