k8S,全称 Kubernetes,是一个用于管理容器的开源平台。它可以让用户更加方便地部署、扩展和管理容器化应用程序,并通过自动化的方式实现负载均衡、服务发现和自动弹性伸缩等功能。
具体来说,Kubernetes 可以将应用程序打包成容器,并将这些容器部署到一个集群中,然后自动处理容器的生命周期管理、自动扩容等操作,让用户更加专注于应用程序的开发和业务逻辑。同时,Kubernetes 还提供了一系列的资源管理机制,如资源调度、容器网络、存储编排等,控制整个容器集群的运行状态,并保证应用程序在容器集群中的高可用性和可靠性。
总之,Kubernetes 提供了一种优秀的容器化应用程序管理解决方案,可以让用户更加轻松地部署、扩展和管理容器化应用程序,提高应用程序的可靠性和稳定性。
1. 部署环境
(1)安装要求
- 一台或者多台虚拟机,操作系统CentOS7.x-86_64或者更高版本;
- 硬件配置:2GB或者更多RAM,2个CPU或者更多CPU,硬盘30G+;
- 可以访问外网,以便拉取镜像,如果服务器不能上网,需提前下载镜
并导入到节点; - 禁用swap分区
(2)环境规划
角色 |
IP |
master |
192.168.1.99 |
node |
192.168.1.89 |
node |
192.168.1.90 |
2.1、 服务介绍cube-appraiser、kube-proxy、kube-scheduler、kube-controller-manager、etcd、coredns、pause
2.1.1 kube-apiserver
apiserver 是 Kubernetes 集群的网关。它是 Kubernetes 集群中的所有用户、自动化和组件都可以访问的中心接触点。API Server通过 HTTP 实现 RESTful API,执行所有 API 操作,并负责将 API 对象存储到持 久存储后端。
2.1.2 kube-proxy
kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服务,从 apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod 的请求路由和转发,从而实现K8s层级的虚拟转发网络。
kube-proxy 有三种模式:userspace、iptables 和 IPVS,其中 userspace 模式不太常用。iptables 模式最主要的问题是在服务多的时候产生太多的 iptables 规则,非增量式更新会引入一定的时延,大规模情况下有明显的性能问题。为解决 iptables 模式的性能问题,v1.11