K8s官方图

DockerFile指令:
FROM #基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER #镜像是谁写的 镜像维护者的姓名混合邮箱地址
RUN #容器构建时需要运行的命令
EXPOSE #当前容器对外保留出的端口
ADD #将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
WORKDIR #指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV #用来在构建镜像过程中设置环境变量
COPY #类似ADD,拷贝文件和目录到镜像中!
VOLUME #挂载的目录,容器数据卷,用于数据保存和持久化工作
CMD #指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!
ENTRYPOINT #指定一个容器启动时要运行的命令!可以追加命令,和CMD一样
ONBUILD #当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发
K8S的编排:
简单和通俗的讲, 大概包括这些点
1. 服务发现: 某服务的具体状态, 以及他们的主机名, 访问端点都做到统一管理等
2. 可伸缩和高可用: 根据流量自动调节, 创建系统冗余, 故障转移等等
3. 资源管理: 调节各个服务的负载均衡, 控制其可访问的系统资源上限, 分配端口这类
4. 监控
总之, 编排是一个让容器有机组合, 协调其运行情况, 保证高可用性, 完成具体业务的一系列工作的总和. 这些事情在 Docker/contained 之前其实也是要干的, 只是以前是物理机和虚拟机, 现在是容器。
Replication Controller:即声明某种Pod的副本数量在任意时刻都符合某个预期值。
Replica Set:副本集,下一代的Replication Controller
Deployment:可以更加方便的管理Pod和ReplicaSet
Labels:标签是附加到对象(例如 pod)的键/值对。
Service:An abstract way to expose an application running on a set of [Pods] as a network service. (具有一系列(相同label的)组合的pod)。
Service通常是通过 Label Selector访问 Pod组.
Label selector:是Kubernetes核心的分组机制,通过label selector客户端/用户能够识别一组有共同特征或属性的资源对象。
使用场景:
1.kube-controller进程通过资源对象RC上定义的Label Selector来筛选要监控的Pod副本的数量,从而实现Pod副本的数量始终符合预期设定的全自动控制流程。
2.kupe-proxy进程通过Service的Label Selector来选择对应的Pod,自动建立器每个Service到对应Pod的请求转发路由表,从而实现Service的智能负载均衡机制。