从.net开发做到云原生运维(五)——云原生时代绕不开的Kubernetes
1. 前言
前面的几篇文章主要是讲.net技术栈里的web开发技术,只是单纯的开发,从一个简单的项目到最后的打包成镜像进行分发。
Kubernetes算是开启了一个新时代。
2. Kubernetes
2.1 什么是Kubernetes
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验 的基础上,结合了社区中最好的想法和实践。
服务部署架构的演变。
上面的介绍在官方文档地址里是有的,我就不展开了,大家主要要理解容器编排的意思,清楚K8s的定位学起来才会很快。
2.2 Kubernetes的安装使用
个人学习的话,我推荐使用Docker Desktop这个软件进行安装。因为我们既可以学习docker容器作为日常开发,也可以用程序里带的K8s进行学习。
下面是参考文档。
关于Kubernetes(简称K8S)的开启及基本使用,基于Docker Desktop & WSL2
Docker Desktop for Mac/Windows 开启 Kubernetes
3. Kubernetes和运维关系
通过上面的一些文章我们也了解到了k8s是容器的编排系统。在云原生容器时代,服务已经和基础的硬件设施进行了隔离,容器可以做到一次打包到处运行,不用担心环境的问题。对于服务的管理也变成了对于容器的管理。
K8s对于容器需要的一些基础设施也都进行了高度的抽象,可以说初始化好一个k8s集群,服务的上线过程完全不用和底层的系统打交道。
以前的从物理机各种安装环境什么的在云原生时代算是可以省略了。容器在K8s里进行管理,那我们的运维自然也是在K8s之上进行操作了。
4. 云原生时代的运维
对于不同的云服务商都会提供对应的K8s集群,这些集群做了很多的优化,当然我们也可以采用物理机自己搭建K8s具体的就看场景需求了。
其他云服务商的搭建自行搜索吧,有了一个K8s环境我们就可以一步步将服务部署到集群了,服务的部署文件是yaml格式的配置,通过声明一些资源K8s就可以将服务跑起来。
个人觉得基于K8s的运维虽然可以让服务更好的迭代更好的伸缩,但是相对来说技术门槛也比传统运维高了不少,需要运维人员对于技术的理解和K8s的一些概念的理解比较熟才行。
持续的学习才是王道,要熟练掌握容器技术,熟练掌握K8s的设计理念。
推荐两本书籍吧。