zoukankan      html  css  js  c++  java
  • k8s-字段

    原文地址:https://mubu.com/doc/2n0iYCbQNal

    【Common】

    selector: 选择器,Service,PersistentVolumeClaim,ReplicationController,ReplicaSet,DaemonSet、StatefulSet、Deployment,选择管理的 pod

    • podSelector: NetworkPolicy 中用的比较多
    • labelSelector: Deployment.affinity 中 设置 pod 模板的亲缘性和非亲缘性
    • nodeSelector: Pod 选择特定节点部署
    • nodeSelectorTerms: pod.affinity 中设置

    【Pod】

    apiVersion

    • apiVersion: v1 版本,核心 API 组件, 如 Pod
    • apiVersion: apps/v1beta2 版本,非核心 API 组件, 位于 apps 组中,如 ReplicaSet 、Deployment(最新版,旧版v1beat1)
    • apiVersion: batch/v1 版本,非核心 API 组件, 位于 batch 组中,如 Job

    pod.restartPolicy:

    • Always: 节点完成后,立马重启;
    • OnFailure: Job
    • Never: Job

    pod.dnsPolicy: pod 是否使用内部的 DNS 服务器ExternalIP

    pod.metadata.ownerReferences : pod 的 metadata.ownerReferences 可以知道 该pod 属于哪个 RC

    pod.readinessProbe: 就绪探针

    pod.serviceAccountName: pod 挂载指定的 serviceAccount 账户

    pod.volumes: 挂载的 卷,和 container 同层级

    pod.hostNetwork: true, 使用宿主节点的网络接口和端口

    pod.hostPID: true, 使用宿主节点的 进程空间

    pod.hostIPC: true, 使用宿主节点的 IPC 命名空间

    pod.imagePullPolicy : pod 拉取镜像的策略, Always 表示总是从云端拉取 【latest 总会比较云端是否是最新的】

    进程的 权限控制

    pod.securityContext: 指定pod 中运行的 用户

    pod.securityContext.runAsNonRoot: 容器只能以 非 root 用户运行

    pod.securityContext.privileged: 在特权模式下运行 【通常为了使用 内核功能】, 如 Kube-proxy 可以访问 iptables 规则

    pod.securityContext.capabilites.add: 更精细的权限控制,例如 添加可修改时间 CAP_SYS_TIME

    pod.securityContext.capabilites.drop: 更精细的权限控制,例如 禁用 chown CHOWN

    pod.securityContext.readOnRootFilesystem: 禁止在 根文件系统写入

    pod.securityContext.fsGroup: 存储卷关联的用户组

    pod.securityContext.supplementalGroups: 额外关联的用户组

    高级调度

    pod.affinity.nodeSelector: pod 部署的节点选择器

    pod.affinity.nodeAffinity: pod 与 节点亲缘性

    pod.affinity.podAffinity: pod 与 pod的 亲缘性

    pod.affinity.podAntiAffinity: pod 与 pod 必须分散到 不同的 节点上

    pod.affinity.podAntiAffinity.required/prefer.topologyKey: pod 与 pod 必须分散到 不同的 节点上 【调度的节点范围】

    申请资源

    pod.resources.requests: 申请的资源(最少需要)

    pod.resources.limits: 限制使用的资源(最多使用)

    允许内存超出限额, OOM,某些 容器会被直接干掉

    Pod 启动与终止

    pod.initContainers: Pod 中可以有任意多个 initContainers,初始化容器用来控制 Pod 之间 启动 的先后顺序

    pod.terminationGracePeriodPeriods: Pod 终止前宽限期,可允许Pod 里的容器 优雅的终止

    pod.terminationMessagePath: 设置文件终止时,附加的日志路径,可自行填充,kubectl describe pod <pod-name> 时会自行读取

    容器奔溃不行

    pod.terminationMessagePolicy:FallBackToLogsOnError: 以容器最后几行日志作为 终止消息

    【Job】

    job.activeDeadlineSeconds: 限制 Job 运行的时间

    job.spec.backoffLimit: 默认6,Job 失败前 可重试的次数

    【Container】

    containers.livenessProbe: 容器里的 探针

    containers.livenessProbe.initialDelaySeconds: 探针 延迟探测时间

    containers.image: 使用的镜像

    containers.env: 容器级别设置环境变量

    containers.readinessProbe: 容器就绪探针

    containers.readinessProbe.periodSeconds: 就绪探针 每隔1s 更新一次

    containers.ports.hostPort: 容器端口可以绑定在节点上

    containers.securityContext: 指定 容器 中运行的 用户

    containers.lifecycle.postStart: 容器启动后执行的钩子,和主进程并行执行(可能主进程正在执行初始化) 【适用于 无法改源码的应用】

    钩子执行失败 或 返回非零状态码,会杀死 主容器 FailedPostStarHook

    containers.lifecycle.preStop: 容器停止前执行的钩子(可能主进程正在执行初始化) 【适用于 无法改源码的应用】

    无论钩子是否执行成功,容器都将终止,若失败,可能看到 FailedPreStopHook

    【Service】

    Service.pod.ports: 服务对集群(内)提供的端口: pod 访问pod

    Service.sessionAffinity: ClientIP, 服务 总是对同一个 clientIP 路由到同一个 pod 上去

    Service.externalTrafficPolicy: Local, 接收连接的节点 和 随机选择pod 所在的节点 在一个位置 【随机pod 变成 随机选择节点(需保证 该节点至少有一个pod)】

    【Storage】

    PersistentVolumeClaim.storageClassName: 自定义存储类

    【Deployment】

    Deployment.minReadySeconds: pod 就绪之后 等待10s,方便就绪探针检测成功后,再继续滚动升级;

    最好设置,若不设置,一旦有一次 就绪探针调用成功,就会认为 pod 处于可用

    Deployment.strategy: 控制升级的策略, 每次更新多少个 新的 pod

    Deployment.processDeadlineSeconds: 多久没更新成功,就视为失败, 自动取消 升级过程

    【StatefulSet】

    StatefulSet.volumeClaimTemplates : 根据模板 为 每个 pod 各创建一个 PVC

    【PodSecurityPolicy】

    PodSecurityPolicy.allowedCapabilities: 集群管理员 限制 Pod pod.securityContext.capabilites 中能够添加的 内核功能

    PodSecurityPolicy.defaultAddCapabilities: 集群管理员 给 Pod 的每个容器 默认添加的功能(除非 在Pod 中显示禁用)

    PodSecurityPolicy.requiredDropCapabilities: 集群管理员 给 Pod 的每个容器 禁用的功能(若 在Pod 中显示添加,则拒绝)

    PodSecurityPolicy.volumes: 集群管理员 允许 Pod 使用的存储卷

    【NetworkPolicy】

    NetworkPolicy.ingress : 集群管理员 限制 Pod 与 Pod 之间的访问

    NetworkPolicy.egress : 集群管理员 限制 Pod 只能被 节点选择器选择的节点/命名空间 访问

    【HorizontalpodAutoscaler】

    autoscale.targetAverageUtilization: HPA 伸缩容 目标 CPU 使用率

  • 相关阅读:
    C语言之浮点类型
    C语言之变量基本使用
    Linux之Shell位置参数变量
    C语言之字符类型
    Linux之设置环境变量
    C# 获取任何给定类型Type的三种形式
    指针 PointerPlayground2 示例
    mount bind
    mono2.10.9]# ./configure help
    创建基于栈的数组
  • 原文地址:https://www.cnblogs.com/smalldong/p/14946403.html
Copyright © 2011-2022 走看看