K8s note2
1.kubernetes是由google开源的Docker容器集群管理系统。
2.在kubernetes中Service是分布式集群架构的核心
有一下特征:拥有唯一指定的名字
拥有一个虚拟IP和端口号
能够远程提供某种服务
被映射到提供这种服务能力的一组容器应用上
3.pod运行在node节点上,这个节点可以是物理机,也可以是私有云或者公有云上的虚拟机。
4.在集群管理方面,k8s将集群中的机器划分为一个master和一群工作节点node,其中master上运行着集群管理相关的一组进程kube-apiserver,kube-controller-manager和kube-scheduler,这些进程实现了整个集群管理的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且全部都是自动完成的。node作为集群的工作节点,运行着真正的应用程序。
5.通常情况下,Cluster IP是在Service创建后由Kubernetes系统自动分配的,其他Pod无法预先知道某个Service的ClusterIP地址,因此需要一个服务发现机制来找到这个服务,为此最初的时候,k8s巧妙的利用linux得环境变量,来解决问题。
6.k8s其实是一个高度自动化的资源控制系统,他通过跟踪对比etcd库里保存的“资源期望状态”与当前环境的“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。
每个node节点上运行着一下一组关键进程:
kubelet 负责pod对应的容器的创建、启停等任务,同时与Master节点密切协作,实现集群管理的基本功能。
kube-proxy 实现k8s的通信与负载均衡机制的重要组件
docker engine docker引擎,负责本机的容器创建和管理工作
7.在k8s里面一个Pod可以和另一个Pod直接通信。
8.一个CPU的配额对于绝大多数的容器来说是一个相当大的资源配额,在k8s里面通常以千分之一的CPU配额为最小单位,用m表示,通常一个容器的cpu配额定义为100300m,即占0.10.3个CPU。
9.label是k8s中一个核心概念,一个label是一个key=value的键值对,其中key和value由用户自己指定,label可以附加在各种资源对象。
10.RC是k8s的核心概念之一,申明某种Pod的副本数量在任意时刻都符合某个预期值,定义包括以下几个部分:
Pod期待的副本数
用于筛选Pod的label selector
当pod的数量少于预期数量时,用于创建新Pod的Pod模板(template)
deployment 是为了更好的解决容器编排问题。
11.pod的endpoint地址会随着pod的销毁和新建而发生变化,因为新的pod的IP地址与之前旧的Pod的不同,而Service一旦创建,k8s就会自动为它分配一个可用的ClusterIP,而且在Service的整个生命周期内,他的ClusterIP不会发生改变。服务发现得以完美解决。