K8S速记

Dockerfile常用命令

  • FROM:基础镜像
  • MAINTAINER:镜像制作者
  • RUN:执行shell命令
  • EXPOSE:暴露端口号
  • CMD:启动容器时执行的命令,可以被覆盖
  • ENTRYPOINT:启动容器真正执行的命令,不会被覆盖
  • VOLUME:创建挂载点
  • ENV:设置环境变量
  • ADD:复制文件到容器,一般拷贝文件,压缩包会自动解压
  • COPY:复制文件到容器,一般拷贝目录
  • WORKDIR:设置容器的工作目录
  • USER:容器使用的用户

Pod

Pod生命周期阶段

  • Pending挂起:已经被调度,但是至少一个容器未被创建
  • Running运行中,所有容器均已被创建,且至少一个容器是运行状态
  • Succeeded成功:所有容器执行成功并终止,并且不会再次重启
  • Failed失败:所有容器都已终止,且至少有一个容器以失败的方式终止
  • Unknown未知:通常由于网络问题导致的无法获取Pod状态

Pod探针类型

  • 存活探针(livenessProbe):探测失败,kubelet会kill容器并按照重启策略进行处置
  • 就绪探针(readinessProbe):探测成功则可以处理请求,否则不会介入流量

Pod探针的探测方式

  • ExecAction:在容器内执行一个指定命令,如果返回值为0,说明容器健康
  • TCPSocketAction:通过TCP连接检查指定端口,如果端口开放,说明容器健康
  • HTTPGetAction:GET指定URL,如果状态码在200-400间,说明容器健康

Pod探针探测的结果

  • Success:容器通过检测
  • Failure:容器检测失败
  • Unknown:诊断失败,不采取措施

镜像拉取策略

  • Always:总是拉取,镜像tag为latest时,默认Always
  • Never:不论是否存在,都不拉取
  • IfNotPresent:只有本地不存在镜像时才拉取,除了tag为latest的默认值

重启策略

  • Always:默认策略,容器失效时,自动重启容器
  • OnFailure:容器以不为0的状态码终止时,自动重启该容器
  • Never:不会重启

RBAC

  • Role:定义的时候必须指定namespace,作用范围为namespace
  • ClusterRole:定义的时候不用指定namespace,作用范围为集群
  • RoleBinding:可以绑定Role,也可以绑定ClusterRole
  • ClusterRoleBinding:只能绑定ClusterRole

RoleBinding/CRB是将R/CR和User、Group、SA进行绑定,R/CR是将资源(Pod、端点等)和操作(get、watch、list等)绑定。

你可能感兴趣的:(K8S速记)