分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Kubernetes之Pod 控制器

发布时间:2023-09-06 02:11责任编辑:苏小强关键词:暂无标签

定义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-labelsNAME ????????????????????READY ????STATUS ???RESTARTS ??AGE ??????LABELSjdk-94bcfc779-fs2cl ?????1/1 ??????Running ??0 ?????????8d ???????pod-template-hash=506797335,workload.user.cattle.io/workloadselector=deployment-default-jdkmysql-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 appNAMESPACE ????????NAME ???????????????????????????????????READY ????STATUS ???????RESTARTS ??AGE ??????APPcattle-alerting ??alertmanager-649c5fc4d7-4hp9q ??????????2/2 ??????Running ??????0 ?????????1d ???????alertmanagercattle-system ????cattle-cluster-agent-6d7c847588-f6cmt ??1/1 ??????Running ??????2 ?????????28d ??????cattle-cluster-agentcattle-system ????cattle-node-agent-9m2ls ????????????????1/1 ??????Running ??????2 ?????????28d ??????cattle-agentcattle-system ????cattle-node-agent-9ngfh ????????????????1/1 ??????Running ??????0 ?????????12d ??????cattle-agentcattle-system ????cattle-node-agent-j862c ????????????????1/1 ??????Running ??????1 ?????????12d ??????cattle-agentcattle-system ????cattle-node-agent-s8s75 ????????????????1/1 ??????Running ??????1 ?????????12d ??????cattle-agent#-l 过滤那些pod具有app标签$ kubectl get pods --all-namespaces ?-l appNAMESPACE ????????NAME ???????????????????????????????????READY ????STATUS ???RESTARTS ??AGEcattle-alerting ??alertmanager-649c5fc4d7-4hp9q ??????????2/2 ??????Running ??0 ?????????1dcattle-system ????cattle-cluster-agent-6d7c847588-f6cmt ??1/1 ??????Running ??2 ?????????28dcattle-system ????cattle-node-agent-9m2ls ????????????????1/1 ??????Running ??2 ?????????28dcattle-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不同的是,他不能挑选资源对象,仅用于为对象提供元数据

Kubernetes之Pod 控制器

原文地址:https://www.cnblogs.com/xzkzzz/p/9519489.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved