0%

Kubernetes 的安装

Kubernetes,又被简称作 K8s(K 和 s 中间含有 8 个字母),它是用于编排容器化应用程序的云原生系统。Kubernetes 诞生自 Google,现在已经由 CNCF (云原生计算基金会)维护更新。Kubernetes 是目前最受欢迎的集群管理方案之一,可以非常容易地实现容器的管理编排。

刚刚我们提到,Kubernetes 是一个容器编排系统,对于“编排”二字,可能不太容易理解其中的含义。为了对它有更好的理解,我们先回过头来看看容器的定位是什么以及容器解决了什么问题,不能解决什么问题,然后我们再来了解下 Kubernetes 能够弥补容器哪些缺失的内容。

好,首先来看容器。最常见的容器技术就是 Docker 了,容器它提供了相比传统虚拟化技术更轻量级的机制来创建隔离的应用程序的运行环境。比如对于某个应用程序,我们使用容器运行时,不必担心它与宿主机之间产生资源冲突,不必担心多个容器之间产生资源冲突。同时借助于容器技术,我们还能更好地保证开发环境和生产环境的运行一致性。另外由于每个容器都是独立的,因此可以将多个容器运行在同一台宿主机上,以提高宿主机资源利用率,从而也进一步降低了成本。总之,使用容器带来的好处很多,可以为我们带来极大的便利。

不过单单依靠容器技术并不能解决所有的问题,也可以说容器技术也引入了新的问题,比如说:

  • 如果容器突然运行异常了怎么办?
  • 如果容器所在的宿主机突然运行异常了怎么办?
  • 如果有多个容器,他们之间怎么有效地传输数据?
  • 如果单个容器达到了瓶颈,如何平稳且有效地进行扩容?
  • 如果生产环境是由多台主机组成的,我们怎样更好地决定使用哪台主机来运行哪个容器?

以上列举了一些单纯依靠容器技术或者单纯依靠 Docker 不能解决的问题,而 Kubernetes 作为容器编排平台,提供了一个可弹性运行的分布式系统框架,各个容器可以运行在 Kubernetes 平台上,容器的管理、调度、部署、扩容等各个操作都可以经由 Kubernetes 来有效实现。比如说,Kubernetes 可以管理单个容器的声明周期,并且可以根据需要来扩展和释放资源,如果某个容器意外关闭,Kubernetes 可以根据对应的策略选择重启该容器,以保证服务的正常运行。再比如说,Kubernetes 是一个分布式的平台,当容器所在的主机突然发生异常,Kubernetes 可以将异常主机上运行的容器转移到其他正常的主机上运行,另外 Kubernetes 还可以根据容器运行所需要占用的资源自动选择合适的主机来运行。总之,Kubernetes 对容器的调度和管理提供了非常强大的支持,可以帮我们解决上述的诸多问题。

相关资料

  • 官方文档:https://kubernetes.io/docs/home/

安装方式

安装 Kubernetes 有好多方式,比如 Minicube、Docker 自带、自建集群、云服务商提供。

Minicube

参考:https://kubernetes.io/docs/tutorials/hello-minikube/

Docker 自带

现在 Docker for Windows 和 Docker for Mac 已经自带了 Kubernetes 的集群功能,只需要打开对应开关即可,如图所示:

image-20211004003229922

这里只需要把 Enable Kubernetes 勾选即可。

集群搭建

搭建 Kubernetes 集群是比较麻烦的,参考链接:

  • https://segmentfault.com/a/1190000040107263
  • https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/high-availability/
  • https://www.kubernetes.org.cn/7315.html

云服务商

很多云服务商已经提供了 Kubernetes,请移步对应云服务商的功能支持说明,参考链接:

  • Azure:https://azure.microsoft.com/en-us/services/kubernetes-service/
  • Google:https://cloud.google.com/kubernetes-engine
  • Amazon:https://aws.amazon.com/cn/eks/
  • 腾讯云:https://cloud.tencent.com/product/tke
  • 阿里云:https://cn.aliyun.com/product/kubernetes
  • 华为云:https://support.huaweicloud.com/kubernetes.html
  • 百度云:https://cloud.baidu.com/product/cce.html