钜形不锈钢水箱 发表于 2022-11-10 16:40:46

Kubernetes

前言

随着软件架构的调整,应用部署的方式
https://img2022.cnblogs.com/blog/1122865/202211/1122865-20221110101229646-762865042.png
 应用部署的工具也由Ansible/Puppet/Saltstack(应用编排工具)----->Docker(应用程序容器化)----->Kubernetes集群(容器编排工具)演变;
一、Kubernetes概念

当1个容器出现了故障,如何立刻启动另1个容器来替代当前容器,继续对外提供服务;(无容错能力,仅出现单点故障,既造成整个服务雪崩)
当并发量大的时候,无法动态横向扩展容器的数量,当并发量降低时,无法动态减少容器数量;(动态扩缩)
以上这些容器管理的问题统称为容器编排问题;
Kubernetes简称K8s,是一种基于容器技术的分布式应用部署方案,可以解决容器编排问题;

K8s本质是一组服务器集群,有以下优势

[*]自我修复:一旦某1个容器退出,会在1秒能重新启动另1个容器进行替换;
[*]弹性伸缩:可以根据现实需求,动态调整K8S集群中容器的数量;
[*]服务发现:服务和服务直接可以通过自动发现的机制,找到自身依赖的服务;
[*]负载均衡:如果1个服务绑定了多个容器,那么多个容器可以自动实现该服务的负载均衡;
二、Kubernetes组件

Kubernetes由一下组件构成,协同工作完成容器编排任务;
1.Master节点

包含API Server、Scheduler、ControllerManager三个守护进程;
2.Node(worker)节点:


[*]Kubelet(集群代理)用于Master和Node之间的通信,Node用于运行多个Pod
[*]Docker容器引擎真正的启动容器;
[*]Kube-proxy:管理service和pod之间的iptables通信规则
3.Pod


[*]Pod相当于虚拟化部署架构中的1个虚拟主机;
[*]容器是应用的外壳, Pod是容器的外壳;
[*]Pod是K8S调动的最小单元;
[*]1个Pod中可以包含多个容器,其中只有1个容器为主容器,其他容器辅助主容器完成更多功能;
[*]辅助容器称为Sidecar(边车、摩托车挎斗);
[*]在1个Pod中,容器之的存储卷是彼此共享的;
[*]通常情况下1个Pod只有1个容器;
4.LabelSelector


[*]由于K8s集群中容器是可以动态调整的,所以容器的IP地址会经常发生变化,但Pod标签是固定的, 标签可以标记和分类Pod;
[*]标签选择器可以帮助我们查询到指定分类的Pod,便于我们对Pod进行批量管理;
5.NameSpace


[*]1个K8s集群中可以运行几千个Pod,Pod之间是可以直接通过网络通信的;
[*]使用NameSpace名称空间分割K8s集群中的pod,起到K8s集群中多租户网络隔离的作用;
三、Kubernetes集群搭建

Kubernetes主要有3种搭建方式

[*]Minikube:用于搭建单节点Kubernetes集群的工具(开发人员学习);
[*]Kubeadmin:用于快速搭建Kubernetes集群(运维人员学习);
[*]二进制源码安装:从K8s官网下载每个组件的源码,依次进行安装,此方式对于理解K8s组件组件更有效(生产环境);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
参考

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Kubernetes