序言
建议先把理论看明白,在进行实践,如果有相关问题可以前往https://i4t.com 进行提问
✌🏾✌️✌🏻✌🏽
简单了解Kubernetes
首先我们需要知道 kubernetes 如何发音?
有很多人不知道kubernetes应该怎么发音,包括我之前也读错了,正确的发音是[kubə’netis],重音在第三个音节,读音:库伯耐踢死,我们可以 github issue 上找到相关讨论:https://github.com/kubernetes/kubernetes/issues/44308。
官方原文是:K8s is an abbreviation derived by replacing the 8 letters “ubernete” with 8.
这个其实和硅谷的人起名有关系,他们有一个坏习惯,就是喜欢把一个单词首字母+跳过的字母数来进行缩写,目的是让爷爷奶奶们读不懂,比如亚马逊的Algorithms被缩写成A9,而kubernetes缩写为k8s,意思就是k后面跳过8个字母后到s,就变成了k8s。
Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更高级的自动化任务。 Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。
Kubernetes作为云原生应用的基石,相当于一个云操作系统,其重要性不言而喻。 </br>
Kubernetes架构图
Kubernetes架构图一 </br> Kubernetes架构图二
Kubernetes主要由以下几个核心组件组成:
etcd保存了整个集群的状态; apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; kubelet负责维护容器的生命周期,同时也负责Volume(CSI)和网络(CNI)的管理; Container runtime负责镜像管理以及Pod和容器的真正运行(CRI); kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;
除了核心组件,还有一些推荐的Add-ons:(更新中)
- kube-dns负责为整个集群提供DNS服务 Ingress Controller为服务提供外网入口
- Heapster提供资源监控 Dashboard提供GUI
- Federation提供跨可用区的集群
</br>
运维常用对联
上联:一名运维,两台电脑,三餐不定,只为设备工作四平八稳,拼得五脏俱损,六神无主,仍然七点起床, 八点出发,晚上九点不返,十分辛苦! 下联:十年运维,九转功成,八面张罗,忙得七窍流血,换得六神不宁,五体欠安,仍然四处奔波,三更不眠,只为两个铜板,一生拼搏!