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 使用率

  • 相关阅读:
    PAT (Basic Level) Practise 1013 数素数
    PAT (Basic Level) Practise 1014 福尔摩斯的约会
    codeforces 814B.An express train to reveries 解题报告
    KMP算法
    rsync工具
    codeforces 777C.Alyona and Spreadsheet 解题报告
    codeforces 798C.Mike and gcd problem 解题报告
    nginx + tomcat多实例
    MongoDB副本集
    指针的艺术(转载)
  • 原文地址:https://www.cnblogs.com/smalldong/p/14946403.html
Copyright © 2011-2022 走看看