K8S
k8s集群中主要存在两种类型的节点:master minion
minion节点是运行docker容器的节点 负责和节点上运行的docker进行交互 并提供代理功能
master节点负责对外提供一系列管理集群的api接口,并且通过和minion节点交互来实现对集群的操作管理
apiserver 用户和k8s集群交互的入口,封装了核心对象的增删改查操作,提供了restful风格的api接口,通过etcd来实现持久化并维护对象的一致性
scheduler 负责集群资源的调度和管理 ,例如当有pod异常退出需要重新分配机器时,scheduler通过一定的调度算法从而找到最合适的节点
controller-manager 用于保证replication controller定义的复制数量和实际运行的pod数量一致,另外还保证了从service到pod的映射关系总是最新的
kubelet 运行在minion节点 负责和节点上的docker交互,例如启停容器,监控运行状态等
proxy 运行在minion几点。负责为pod提供代理功能 会定期从etcd获取service信息,并根据service信息通过修改iptables来实现流量转发,将流量转发到要访问的pod所在的节点上去。
etcd key-value键值存储数据库,用来存储k8s的信息
flannel 是coreos团队针对k8s设计的一个覆盖网络工具,flannel目的就是为集群中规定所有节点重新规划ip地址的使用规则,从而使用不同节点上的容器能够获得同属一个内网且不重复的ip地址 并让属于不同节点上的容器能够直接通过内网ip进行通信。
k8s本地私有仓库
docker仓库主要存放docker镜像,docker仓库分为公公仓库和私有仓库 基于registry可以搭建本地私有仓库,使用私有仓库的优点:
1.节省网络带宽,针对于每个镜像不用去docker官网仓库下载
2.下载docker镜像从本地私有仓库中下载
3.组建公司内部私有仓库,方便各部门使用,服务器管理更加统一
4.可以基于GIT或是SVN jenkins更新本地docker私有仓库镜像版本