目录
Kubernetes介绍
继docker作为容器引擎之后,k8s横空出世。
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes优点
Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。
Kubernetes的好处:
隐藏资源管理和错误处理,用户仅需要关注应用的开发。
服务高可用、高可靠。
可将负载运行在由成千上万的机器联合而成的集群中
kubernetes设计架构
Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。
Kubernetes主要由以下几个核心组件组成:
etcd:保存了整个集群的状态
apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制 controller manager:
负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理 Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)
kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡
除了核心组件,还有一些推荐的Add-ons: kube-dns:负责为整个集群提供DNS服务 Ingress Controller:为服务提供外网入口 Heapster:提供资源监控 Dashboard:提供GUI Federation:提供跨可用区的集群 Fluentd-elasticsearch:提供集群日志采集、存储与查询
Kubernetes部署
实验环境
安装环境:四台rhel7.6版本虚拟机,火墙和selinux关闭。
其中,vm2负责harbor容器仓库配置,vm3负责k8s master节点,vm4/vm5为k8s node节点,所有k8s服务器均要能上网。
实验前
docker service rm 之前的服务
docker swarm leave 退出之前的集群
在docker-machine部署的docker
rm -rf 10-machine.conf
systemctl daemon-reload
systemctl restart docker
https://kubernetes.io/docs/home/ 官网
参考文档使用 kubeadm 创建集群
禁用swap分区,除了vm2仓库