当前位置: 首页 > Linux

Kubernetes基本概念

时间:2023-04-06 04:03:02 Linux

Kubernetes基本概念kubernetes特点:-服务发现和负载均衡Kubernetes可以使用DNS名称或自身的IP地址来暴露容器,如果有大量流量进入容器,Kubernetes可以负载均衡和分配网络流量,使部署稳定。-存储编排Kubernetes允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。-自动部署和回滚您可以使用Kubernetes描述已部署容器的期望状态,这可以改变实际以受控的速率状态到所需的状态。例如,您可以自动化Kubernetes为您的部署创建新容器,删除现有容器并将其所有资源用于新容器。-自动完成装箱Kubernetes允许您指定每个容器所需的CPU和内存(RAM)。当容器指定资源请求时,Kubernetes可以就管理容器的资源做出更好的决策。-自我修复Kubernetes重启失败的容器,替换容器,杀死不响应用户定义的健康检查的容器,并且在它们准备好服务之前不通知客户端。-密钥和配置管理Kubernetes允许您存储和管理敏感信息,例如密码、OAuth令牌和ssh密钥。您可以部署和更新机密和应用程序配置,而无需重建容器映像,或在堆栈配置中公开机密。Kubernetes为您提供了一个弹性运行分布式系统的框架。Kubernetes会处理您的扩展需求、故障转移、部署模式等。例如,Kubernetes可以轻松管理系统的金丝雀部署。kubernetes组件结构及介绍一、控制平面组件(ControlPlaneComponents)控制平面组件对集群进行全局决策(如调度),检测并响应集群事件(如部署的replicas字段为不满足,开始一个新的豆荚)。控制平面组件可以在集群中的任何节点上运行。然而,为了简单起见,设置脚本通常会在同一台机器上启动所有控制平面组件,并且不会在这台机器上运行用户容器。有关多VM控制平面设置的示例,请参阅使用kubeadm构建高可用性集群。kube-apiserverAPI服务器是公开KubernetesAPI的Kubernetes控制平面组件。API服务器是Kubernetes控制平面的前端。KubernetesAPI服务器的主要实现是kube-apiserver。kube-apiserver设计为水平扩展,即通过部署多个实例进行扩展。您可以运行多个kube-apiserver实例并平衡这些实例之间的流量。etcdetcd是一个一致性高可用的key-value数据库,可以作为存储Kubernetes所有集群数据的后台数据库。Kubernetes集群的etcd数据库通常需要一个备份计划。有关etcd的深入信息,请参阅etcd文档。kube-scheduler控制平面组件负责监控新创建的未指定运行节点(node)的Pod,并选择一个节点让Pod运行。调度决策中考虑的因素包括单个Pod和Pod集合的资源需求、硬件/软件/策略约束、亲和力和反亲和力规范、数据局部性、工作负载之间的干扰以及截止日期。kube-controller-manager在主节点上运行控制器组件。从逻辑上讲,每个控制器都是一个单独的进程,但为了降低复杂性,它们都被编译成同一个可执行文件并在一个进程中运行。这些控制器包括:NodeController:负责在节点出现故障时通知和响应Jobcontroller:监控表示一次性任务的Job对象,然后创建Pod来运行这些任务直到Done●EndpointsController:填充Endpoints对象(即加入Services和Pods)●ServiceAccount&TokenControllers:为新命名空间创建默认账户和API访问令牌cloud-controller-manager是指嵌入了特定云的控制逻辑的控制平面组件。CloudControllerManager允许您将集群链接到云提供商API,并将与该云平台交互的组件与仅与您的集群交互的组件分开。cloud-controller-manager只运行特定于云平台的控制循环。如果您在自己的环境中运行Kubernetes,或者在本地机器上运行学习环境,则部署环境中不需要CloudControllerManager。与kube-controller-manager类似,cloud-controller-manager将几个逻辑上独立的控制循环组合到同一个可执行文件中,供您作为同一个进程运行。您可以水平扩展它(运行多个副本)以提高性能或增加容错能力。以下控制器都包含对云平台驱动的依赖:●节点控制器:用于在节点终止响应后检查云提供商以确定节点是否已被删除●路由控制器(RouteController):用于设置路由中的路由底层云基础设施●服务控制器(ServiceController):用于创建、更新和删除云提供商负载均衡器2、节点组件节点组件运行在每个节点上,维护运行的Pod并提供Kubernetes运行环境。kubelet是在集群中的每个节点上运行的代理。它确保所有容器都在Pod中运行。kubelet接收通过各种机制提供给它的一组PodSpec,并确保这些PodSpec中描述的容器正在运行且健康。kubelet不会管理不是由Kubernetes创建的容器。kube-proxykube-proxy是运行在集群中各个节点上的网络代理,它实现了部分Kubernetes服务(Service)的概念。kube-proxy在节点上维护网络规则。这些网络规则允许从集群内部或外部的网络会话与pod进行网络通信。如果操作系统提供了包过滤层并且可用,kube-proxy会通过它来实现网络规则。否则,kube-proxy只会转发流量本身。3、集群安装一键部署使用脚本:https://github.com/lework/kai...root@hello:~#wgethttps://cdn.jsdelivr.net/gh/lework/kainstall@master/kainstall-ubuntu.sh--2021-11-1702:56:26--https://cdn.jsdelivr.net/gh/lework/kainstall@master/kainstall-ubuntu.sh解析cdn.jsdelivr.net(cdn.jsdelivr.net)...117.12.41.16,2408:8726:7000:5::10正在连接到cdn.jsdelivr.net(cdn.jsdelivr.net)|117.12.41.16|:443...connected.HTTP请求已发送,等待响应...200OKLength:128359(125K)[application/x-sh]Savingto:'kainstall-ubuntu.sh'kainstall-ubuntu.sh100%[===========================================================================>]125.35K---.-KB/s在0.006s2021-11-1702:56:26(19.2MB/s)-'kainstall-ubuntu.sh'保存[128359/128359]root@hello:~#root@hello:~#chmod+xkainstall-ubuntu.shroot@hello:~#root@hello:~#kainstall-ubuntu.shinit\>--master192.168.1.100,192.168。1.101,192.168.1.102\>--工人192.168.1.103,192.168.1.104,192.168.1.105,192.168.1.106\>--userroot\>--password123456\>--version1.20.6可以参考:kubeadm高可用手册安装:https://blog.csdn.net/qq\_33921750/article/details/110298506kubeadm手动安装单master集群:https://blog.csdn.net/qq\_33921750/article/details/1036135994,部署dashboard参考:https://blog.csdn.net/qq\_33921750/article/details/1210267995,命令自动补全(可选)参考:https://blog.csdn.net/qq\_33921750/article/details/121173706Linux运维交流社区Linux运维交流社区,互联网新闻和技术交流55原创内容https://blog.csdn.net/qq_3392...https://my.oschina.net/u/3981543https://www.zhihu.com/people/...https://段错误。com/u/hp...https://juejin.cn/user/331578...https://space.bilibili.com/35...https://cloud.tencent.com/dev...知乎、CSDN、开源中国、私服、掘金、哔哩哔哩、腾讯云本文使用文章同步助手进行同步