kubernetes介绍
kubernetes具备的功能
-
自我修复:一旦某个容器崩溃,能够在1秒钟左右迅速启动新的容器;
-
弹性伸缩:可以根据需要,自动对集群内正在运行的容器数量进行调整;
-
⾃动完成装箱计算(资源限额):Kubernetes允许指定每个容器所需的CPU和内存资源,能够更好的管理容器的资源使用量;
-
负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡;
-
版本回退:如果发现新版本程序有问题,可立刻归退到原来的版本;
-
存储编排:Kubernetes允许⾃动挂载各种存储类系统,例如本地存 储、NFS、GFS、Ceph、公共云存储等;
-
密钥与配置管理:Kubernetes 允许你存储和管理敏感信息,例如:密码、令牌和ssh密钥等信息进行统一管理,并共享给多个容器复用;
kubernetes集群角色
Kubernetes集群需要建⽴在多个物理主机上,将多个物理主机组建成一个集群,⽽后进⾏统⼀管理,当然它需要多个物理主机,不⼀定必须是物理机,也可以是虚拟机VM等等;
但是在Kubernetes集群内部,这些节点⼜被划分成了两类⻆⾊;
-
一类⻆⾊为主节点,叫Master,负责管理集群;
-
⼀类⻆⾊为⼯作节点,叫Node,负责运⾏容器应⽤;
这也就意味着我们将来运⾏的所有容器,都应该运⾏在Node节点,⽽ Master负责管理有多少个Node节点,同时还负责管理每个Node节点应该运⾏哪个容器或哪些容器。
kubernetes集群类型
-
一主多从集群:由一台Master管理节点和多台Node工作节点组成,生产环境下Master节点存在单点故障的风险,适合学习和测试环境使用;
-
多主多从集群:由多台Master管理节点和多Node工作节点组成,安全性高,适合生产环境使用;
kubernetes集群组件
Master管理节点组件:
-
kube-ApiServer:集群的统一管理入口,接收用户指令,可以提供身份认证、身份授权、服务注册(服务所在主机IP、服务的端口号Port、暴露服务协议等信息)等机制;
-
kube-Scheduler:负责集群的资源调度计算,按照预定的调度策略将Pod分配到相应的Node节点,以及对Pod提供监控;
-
kube-Controller-manager:负责调用Pod控制器,对Pod进行部署安排,Pod故障检测、Pod自动扩展、Pod滚动更新等;
-
Etcd:负责存储整个集群的资源信息的key=value数据库;
Node工作节点组件:
- kubelet:接收Master指令,既通过控制Container Runtime对容器进行管理;
- Container Runtime:负责集群节点上容器的各种管理工作,例如:创建、更新、删除等;
- kubeProxy:负责对外接收用户的请求的代理;
e:负责集群节点上容器的各种管理工作,例如:创建、更新、删除等;
- kubeProxy:负责对外接收用户的请求的代理;