knowledge-base

我的知识库 / Kubernetes / 简单介绍 K8s

简单介绍 K8s

简介

我们的应用部署趋势由大型单体应用向微服务演变,微服务应用之间解耦,形成可被独立开发、部署、升级、伸缩的软件单元。

另一方面容器技术由于它的轻量级,资源隔离,可移植、部署高效等特性得到了迅速的发展和普及。越来越多的应用选择使用容器来部署,微服务更不例外。

这时,便有了管理微服务+容器的需求,Kubernetes 开始大放异彩。

Kubernetes 是基于容器技术的服务器集群管理系统,通过它,可以托管数量庞大的应用集,并且内置完备的集群管理能力,它有能力帮你做到这些:

Kubernetes 对于运维团队来说,是一个强大的帮手,更自动化的部署和管理应用,更高效的利用硬件资源。

基本概念

Kubernetes 集群,后面简称为K8s,主要是由控制节点(Master)和工作节点(Node)组成。

在 Master 节点中运行着三大组件:kube-api-serverkube-controller-managerkube-scheduler,通常也会将 etcd 数据库部署在 Master 节点。

在 Node 节点中,也是需要部署三个主要组件,容器引擎(基本默认 docker 了)、kubeletkube-proxy

K8s 的组成结构大致如下图:

image-20200523001832961

Master 节点

负责 K8s 资源的调度管理,由 Master 向 Node 下达控制命令,并且一般运维人员使用 Master 操作和执行命令。

Master 节点扮演的角色相当于 K8s 的大脑,其重要性可想而知,因此建议部署 3 台 Master 节点保证 K8s 的高可用性。

Node 节点

负责 K8s 应用资源的容器化部署和运行,Node 节点配置要求一般高于 Master,当其中一个 Node 不可用时,部署在其上的 K8s 资源会自动被迁移到可用的 Node。

其实了解了 K8s 的整个组成和相关组件服务的功能,我们就能知道如何来管理我们的 K8s 节点了。例如,我们要新增 Node 节点,该如何操作?

原理上新扩 Node 只需要在一台新的机器上安装以上三个服务,然后配置 kubectl 和 kube-proxy 的启动参数,通过 kubelet 向 Master的kube-api-server 提交 Node 注册信息,就可以将 Node 纳入 Master 的调度中心了。

工具


« Kubernetes 定制开发 50:扩展调度器

» kubeadm 安装 Kubernetes (Docker)