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等)绑定。
网友评论