如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理

写在前面:本文是《Kubernetes Tutorials》系列文章的第一篇,本文的一个重要目的是帮助您如何使用 Rancher 从零开始搭建一个 Kubernetes 集群,并初步了解多集群可视化管理。《Kubernetes Tutorials》系列后续还会陆续推出更多相关系列文章详细介绍更丰富的 Kubernetes 安装部署、集群管理实践与原理解析,尽情期待~天才都会三个神操作 Watching & Star & Fork

介绍

Kubernetes 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

通过 Kubernetes 你可以:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

我们的目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或私有云中运行的负担。

Kubernetes 特点

  • 可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
  • 可扩展:模块化, 插件化, 可挂载, 可组合
  • 自动化:自动部署,自动重启,自动复制,自动伸缩/扩展

Kubernetes 是 Google 2014 年创建管理的,是 Google 10 多年大规模容器管理技术 Borg 的开源版本。

常见的创建 Kubernetes 集群的方式

  • 使用 Kubeadm 创建 Kubernetes 集群
  • 使用 Kubemini 创建 Kubernetes 集群
  • 使用 RKE 创建 Kubernetes 集群
  • 使用 Rancher 创建 Kubrnetes 集群

本文主要讲述 如何使用 Rancher 创建 Kubernetes 集群并进行可视化的集群管理。后续会陆续发布其他方式创建 Kubernetes 集群,并在本文中给出相关链接,请您持续关注

Rancher 创建与管理 Kubernetes 集群的主要优势

Rancher 是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。 Rancher 可以轻松地管理各种环境的 Kubernetes,满足 IT 需求并为 DevOps 团队提供支持。

  • 企业级容器管理平台
    Rancher 是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件。Rancher2.0 基于 Kubernetes 构建。使用 Rancher,DevOps 团队可以轻松测试、部署和管理应用程序,运维团队可以部署、管理和维护一切 Kubernetes 集群,无论集群运行在何基础设施之上。

  • 多集群管理
    Rancher 可以更方便的管理 Kubernetes 集群,它可以从头开始轻松部署新集群,甚至可以导入现有的 Kubernetes 集群。

  • 统一运营管理
    对于 Rancher,运营团队在开发,测试和生产 Kubernetes 集群中拥有相同的部署和管理工具。

目标

集群包含以下资源:

  • 1 个 Rancher 节点:用于部署 Rancher Server,通过该节点可以实现可视化多集群、跨云管理 Kubernetes 管理
  • 1 个 Etcd 节点:存储主控制节点和工作节点之间的任务调度等数据信息
  • 1 个控制(Controller)节点:部署 Kunbernetes 集群主控制节点,用于管理和监控 Kubernetes 其它的工作节点和存在状态信息。
  • 2 个工作(Worker )节点:部署 Kubernetes 集群的工作节点,用于运行容器化的应用。

完成本指南后您将学会 安装 Docker 环境搭建 Rancher 集群管理环境使用 Rancher 创建 Kubernetes 环境使用 Rancher 进行多集群管理

**注意:**配置推荐至少 2核 CPU、4GB 内存、40GB 存储、2M 带宽,系统均为 Ubuntu 16.04 LTS。为达到更好的效果,本文创建的 5 台云服务器配置均为 4核 CPU、8GB 内存、200GB 存储、5M 带宽,系统选择 Ubuntu 16.04 LTS。

第一步:购买滴滴云服务器

登陆滴滴云控制台购买 5 台滴滴云服务器(如果需要完成试验后即删除可以购买按时长配置),配置推荐至少 2核 CPU、4GB 内存、40GB 存储、2M 带宽,系统均为 Ubuntu 16.04 LTS。

登陆滴滴云批量创建云服务器,如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第1张图片

购买成功后 DC2 云服务器列表如下图:

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第2张图片

**注意:**为达到更好的效果,本文创建的 5 台云服务器配置均为 4核 CPU、8GB 内存、200GB 存储、5M 带宽。

第二步:安装 Docker

本步骤概述安装 Docker 的通用步骤,上一步准备的 5 台云服务器均可按本指南安装 Docker-CE。更详细的 Docker 安装与使用教程请参考如何用滴滴云在 Ubuntu 16.04 上安装和使用 Docker

1.检查内核版本:

$ uname -a

输出如下结果,内核版本符合要求(确保内核版本 3.0 以上):

$ Linux 10-10-73-109 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2.为了让 Docker 使用 aufs 存储,推荐安装如下两个软件包:

$ sudo apt-get update
OUTPUT

 Hit:1 http://mirrors.intra.didiyun.com/ubuntu xenial InRelease
Hit:2 http://mirrors.intra.didiyun.com/ubuntu xenial-updates InRelease
Hit:3 http://mirrors.intra.didiyun.com/ubuntu xenial-backports InRelease
Hit:4 http://mirrors.intra.didiyun.com/ubuntu xenial-security InRelease
Reading package lists... Done
$ sudo apt-get install -y \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
OUTPUT

 Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  amd64-microcode crda intel-microcode iucode-tool iw libnl-3-200 libnl-genl-3-200 linux-firmware linux-image-4.4.0-140-generic linux-image-extra-4.4.0-140-generic linux-image-generic thermald wireless-regdb
Suggested packages:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools linux-headers-4.4.0-140-generic
The following NEW packages will be installed:
  amd64-microcode crda intel-microcode iucode-tool iw libnl-3-200 libnl-genl-3-200 linux-firmware linux-image-4.4.0-140-generic linux-image-extra-4.4.0-138-generic linux-image-extra-4.4.0-140-generic
  linux-image-extra-virtual linux-image-generic thermald wireless-regdb
0 upgraded, 15 newly installed, 0 to remove and 17 not upgraded.
Need to get 147 MB of archives.
After this operation, 623 MB of additional disk space will be used.
...

3.添加镜像源:
安装 apt-transport-https 等软件包支持 HTTPS 协议的源:

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
OUTPUT

 Reading package lists... Done
Building dependency tree       
Reading state information... Done
apt-transport-https is already the newest version (1.2.29).
ca-certificates is already the newest version (20170717~16.04.1).
curl is already the newest version (7.47.0-1ubuntu2.11).
software-properties-common is already the newest version (0.96.20.7).
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.

添加源的 GPG 密钥:

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

确认指纹为 “9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88” 的 GPG 公钥:

sudo apt-key fingerprint 0EBFCD88

获取当前系统的代号:

lsb_release -cs
OUTPUT

 xenial

添加 Docker 稳定版的官方软件源,本文中使用 16.04 LTS 对应的系统代号为 xenial;若使用其他版本 Ubuntu,将代号修改为对应版本的系统代号即可:

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
xenial  \
stable"

添加成功后,再次更新 APT 软件包缓存:

sudo apt-get update

成功添加源之后就可以安装最新版本的 Docker了,软件包名为 docker-ce

sudo apt-get install -y docker-ce

除了基于手动添加软件源的方式之外,也可以使用官方提供的脚本来自动化安装 Docker:

sudo curl -fsSL https://get.docker.com/ | sh

设置开机自动启动:

$ sudo systemctl enable docker.service
$ sudo systemctl daemon-reload
$ sudo service docker restart

检查安装:

$ sudo service docker status
OUTPUT

 ● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-11-26 00:41:59 CST; 2 weeks 0 days ago
     Docs: https://docs.docker.com
 Main PID: 5509 (dockerd)
    Tasks: 19
   Memory: 2.2G
      CPU: 5h 57min 9.624s
   CGroup: /system.slice/docker.service
           └─5509 /usr/bin/dockerd -H unix://

 Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

每次重启 Docker 后,可以通过查看 Docker 信息确保服务已经正常运行:

sudo docker version
OUTPUT

 Client:
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.4
 Git commit:        4d60db4
 Built:             Wed Nov  7 00:48:57 2018
 OS/Arch:           linux/amd64
 Experimental:      false

 Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:16:44 2018
  OS/Arch:          linux/amd64
  Experimental:     false

第三步:安装 Rancher Server

本指南为安装 Rancher 的通用步骤,从上述云服务器中挑选一台按照本指南安装 Rancher Server 即可

安装和运行Rancher Server,运行如下命令会从 Docker Hub 仓库中拉取 Rancher 镜像并完成安装:

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
OUTPUT

Unable to find image 'rancher/rancher:latest' locally
latest: Pulling from rancher/rancher
32802c0cfa4d: Pull complete 
da1315cffa03: Pull complete 
fa83472a3562: Pull complete 
f85999a86bef: Pull complete 
802918c3c5d1: Pull complete 
941c9d7db7cb: Pull complete 
a00bebfc6f0e: Pull complete 
0a145b822324: Pull complete 
1cd1020104e1: Pull complete 
03f3b0fc5689: Pull complete 
07054e1590fd: Pull complete 
db38f96efb72: Pull complete 
Digest: sha256:b5762180fdc05b5be8337453cc9bbadc33645d50cd8d2dac89c6676bf07460b7
Status: Downloaded newer image for rancher/rancher:latest
6a9758a790ebe1b4ee94725023ec98b214304e2f59fc71c658ef025b0533efef

打开浏览器,输入 https://,server_ip 替换为运行 Rancher 容器主机的 IP;如本文中安装 Rancher Server 的云服务器公网 IP 地址为 116.85.46.53,所以 Rancher 管理界面的访问地址为 https://116.85.46.53 ,如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第3张图片

因为是自动使用的自签名证书,在第一次登录会提示安全授信问题,信任即可:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第4张图片

设置管理密码(第一次登录会要求设置管理员密码,默认管理员账号为: admin):
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第5张图片

设置 Rancher Server URL (这个 Rancher Server URL 是 agent 节点注册的地址,需要保证这个地址能够被其他主机访问):
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第6张图片

进入 Rancher Server 管理控制台:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第7张图片

第四步:安装 Etcd 节点与控制节点

本指南为安装 Rancher 的通用步骤,从上述云服务器中挑选两台分别作为 Etcd 节点和控制节点进行安装即可。

点击【Add Cluster】进入添加集群页面,设置集群名称:k8s-cluster-rancher,如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第8张图片)

设置 Etcd 节点选项:

  • 【Node Options】-【Node Role】中只勾选【Etcd】
  • 【Node Options】-【Node Address】-【Public Address】中天蝎 Etcd 云服务器的公网 IP 地址,如示例中的:116.85.13.168
  • 【Node Options】-【Node Address】-【Internal Address】中天蝎 Etcd 云服务器的内网 IP 地址,如示例中的:10.10.150.195
  • 【Node Options】-【Node Name】中填写 Etcd 云服务器的名称,如示例中的:kubernetes-etc-x

设置效果如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第9张图片

下方会自动生成 Etcd 节点的配置命令:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.3 --server https://116.85.46.53 --token zs6zxddp7rdfxfvwhcpdw4vfxbfqccm2vg6hh7st2nwr9l9rtbk7j8 --ca-checksum 551014a641a7d23d0ed67153e2797b9fd8670307422cdfc232020cb831e376aa --node-name kubernetes-etc-x --address 116.85.13.168 --internal-address 10.10.150.195 --etcd

复制配置命令到 Ectd 云服务器终端并运行,输出如下:

OUTPUT

Unable to find image 'rancher/rancher-agent:v2.1.3' locally
v2.1.3: Pulling from rancher/rancher-agent
32802c0cfa4d: Pull complete 
da1315cffa03: Pull complete 
fa83472a3562: Pull complete 
f85999a86bef: Pull complete 
5bf53f7eb665: Pull complete 
b6dee6425e98: Pull complete 
15612bde45d1: Pull complete 
5bb137229af3: Pull complete 
72fc31ea0fd1: Pull complete 
Digest: sha256:c0c15e3fb32d516a16889765fe9ce62713617dc2f599a516c7d66620c737b705
Status: Downloaded newer image for rancher/rancher-agent:v2.1.3
ab7275fe95b6d2ffeb9c9090f642af311c71de5d4c2ca8e3d39163f4e52ad89c

Etcd 节点安装完成后会自动连接到 Rancher 管理服务器,管理控制台底部会提示 1 new node has registered

同样的步骤安装控制节点:

  • 【Node Options】-【Node Role】中只勾选【Control Plane】
  • 【Node Options】-【Node Address】-【Public Address】中天蝎 Etcd 云服务器的公网 IP 地址,如示例中的:116.85.60.45
  • 【Node Options】-【Node Address】-【Internal Address】中天蝎 Etcd 云服务器的内网 IP 地址,如示例中的:10.10.0.89
  • 【Node Options】-【Node Name】中填写 Control Plane 云服务器的名称,如示例中的:kubernetes-controller-x

设置效果如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第10张图片

下方会自动生成 Control Plane 节点的配置命令:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.3 --server https://116.85.46.53 --token zs6zxddp7rdfxfvwhcpdw4vfxbfqccm2vg6hh7st2nwr9l9rtbk7j8 --ca-checksum 551014a641a7d23d0ed67153e2797b9fd8670307422cdfc232020cb831e376aa --node-name kubernetes-controller-x --address 116.85.60.45 --internal-address 10.10.0.89 --controlplane

复制配置命令到 Control Plane 云服务器终端并运行,输出如下:

OUTPUT

Unable to find image 'rancher/rancher-agent:v2.1.3' locally
v2.1.3: Pulling from rancher/rancher-agent
32802c0cfa4d: Pull complete 
da1315cffa03: Pull complete 
fa83472a3562: Pull complete 
f85999a86bef: Pull complete 
5bf53f7eb665: Pull complete 
b6dee6425e98: Pull complete 
15612bde45d1: Pull complete 
5bb137229af3: Pull complete 
72fc31ea0fd1: Pull complete 
Digest: sha256:c0c15e3fb32d516a16889765fe9ce62713617dc2f599a516c7d66620c737b705
Status: Downloaded newer image for rancher/rancher-agent:v2.1.3
cb878cb4c25b985f7a1af4be7658338c62f2a312f4c78da07e4f1e6a8b48c706

Control Plane 节点安装完成后会自动连接到 Rancher 管理服务器,管理控制台底部会提示 2 new node has registered

第五步:安装工作节点

本指南为安装工作节点的通用步骤,从上述云服务器中挑选两台作为工作节点进行安装即可。

重复第四步中的步骤安装第一个工作节点,详情如下:

  • 【Node Options】-【Node Role】中只勾选【Worker】
  • 【Node Options】-【Node Address】-【Public Address】中填写第一台工作节点云服务器的公网 IP 地址,如示例中的:116.85.30.97
  • 【Node Options】-【Node Address】-【Internal Address】中填写第一台工作节点云服务器的内网 IP 地址,如示例中的:10.10.232.55
  • 【Node Options】-【Node Name】中填写第一台工作节点云服务器的名称,如示例中的:kubernetes-worker01-x

设置效果如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第11张图片

下方会自动生成工作节点的配置命令:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.3 --server https://116.85.46.53 --token zs6zxddp7rdfxfvwhcpdw4vfxbfqccm2vg6hh7st2nwr9l9rtbk7j8 --ca-checksum 551014a641a7d23d0ed67153e2797b9fd8670307422cdfc232020cb831e376aa --node-name kubernetes-worker01-x --address 116.85.30.97 --internal-address 10.10.232.55 --worker

复制配置命令到 Worker1 云服务器终端并运行,输出如下:

OUTPUT
Unable to find image 'rancher/rancher-agent:v2.1.3' locally
v2.1.3: Pulling from rancher/rancher-agent
32802c0cfa4d: Pull complete 
da1315cffa03: Pull complete 
fa83472a3562: Pull complete 
f85999a86bef: Pull complete 
5bf53f7eb665: Pull complete 
b6dee6425e98: Pull complete 
15612bde45d1: Pull complete 
5bb137229af3: Pull complete 
72fc31ea0fd1: Pull complete 
Digest: sha256:c0c15e3fb32d516a16889765fe9ce62713617dc2f599a516c7d66620c737b705
Status: Downloaded newer image for rancher/rancher-agent:v2.1.3
5213acaac6a21cfa5770415755f924a53fa037aeb1163df50d3a8c9ed12d5c36

Worker1 节点安装完成后会自动连接到 Rancher 管理服务器,管理控制台底部会提示 3 new node has registered

重复如上步骤安装第二个工作节点,详情如下:

  • 【Node Options】-【Node Role】中只勾选【Worker】
  • 【Node Options】-【Node Address】-【Public Address】中填写第二台工作节点云服务器的公网 IP 地址,如示例中的:116.85.37.60
  • 【Node Options】-【Node Address】-【Internal Address】中填写第二台工作节点云服务器的内网 IP 地址,如示例中的:10.10.148.43
  • 【Node Options】-【Node Name】中填写第二台工作节点云服务器的名称,如示例中的:kubernetes-worker02-x

设置效果如下图:
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第12张图片

下方会自动生成工作节点的配置命令:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.3 --server https://116.85.46.53 --token zs6zxddp7rdfxfvwhcpdw4vfxbfqccm2vg6hh7st2nwr9l9rtbk7j8 --ca-checksum 551014a641a7d23d0ed67153e2797b9fd8670307422cdfc232020cb831e376aa --node-name kubernetes-worker02-x --address 116.85.37.60 --internal-address 10.10.148.43 --worker

复制配置命令到 Worker2 云服务器终端并运行,输出如下:

OUTPUT

Unable to find image 'rancher/rancher-agent:v2.1.1' locally
v2.1.1: Pulling from rancher/rancher-agent
473ede7ed136: Pull complete 
c46b5fa4d940: Pull complete 
93ae3df89c92: Pull complete 
6b1eed27cade: Pull complete 
f21f12a5ca08: Pull complete 
33a2b1a4bb51: Pull complete 
a0876ba0c412: Pull complete 
cbb664d29f0f: Pull complete 
bd32e23bc74b: Pull complete 
Digest: sha256:2236b44b39bf0c2ae2f5c158f2516e3c89c85f8fa664fa3315b3effe66e63395
Status: Downloaded newer image for rancher/rancher-agent:v2.1.1
909549bc0d6035a9df4d68cbe51406da76c3e17e1d633d541dca0c82a06dc69d

Worker2 节点安装完成后会自动连接到Rancher管理服务器,管理控制台底部会提示 4 new node has registered

至此,Kubernetes 集群所有节点均已成功安装,点击【Done】完成集群设置即可。

第六步:查看与管理集群

可以按照上述方法添加多个 Kubernetes 集群,本文为更好的演示多集群管理效果,添加了多个 Kubernetes 集群

查看集群,可以看到集群各节点状态还在准备中

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第13张图片

【Global】菜单可查看当前存在的集群并切换到您需要管理的集群

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第14张图片

【Cluster】菜单可以可视化的查看和管理某个具体的集群信息,也可以图表化查看集群资源的消耗情况

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第15张图片

【Node】菜单可以查看与管理节点服务器

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第16张图片

【Project/Namespace】菜单可以查看与管理命名空间

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第17张图片

【Members】菜单可以管理 Rancher 管理控制台的成员信息,包括账户、密码、角色/权限等

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第18张图片

【Tools】菜单可以管理告警、提醒与日志信息

如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第19张图片

点击右下角的【Language】可以切换语言,如果您更习惯看中文,恭喜~您可以选择【简体中文】获得更好的管理体验:)
如何使用 Rancher 创建 Kubernetes 集群并进行可视化管理_第20张图片

结论

Rancher 为 DevOps 工程师提供了一个直观的用户界面来管理他们的服务容器,用户不需要深入了解 Kubernetes 概念就可以开始使用 Rancher。

Rancher 包含应用商店,支持一键式部署 Helm 和 Compose 模板。Rancher 通过各种云、本地生态系统产品认证,其中包括安全工具,监控系统,容器仓库以及存储和网络驱动程序。

K8S 相关概念

节点(Node)

Kubernetes 集群中的计算能力由 Node 提供,Kubernetes 集群中的 Node 是所有 Pod 运行所在的工作主机,可以是物理机也可以是虚拟机。工作主机的统一特征是上面要运行 Kubelet 管理节点上运行的容器。

命名空间(Namespace)

命名空间为 Kubernetes 集群提供虚拟的隔离作用。Kubernetes 集群初始有 3 个命名空间,分别是默认命名空间 default、系统命名空间 kube-system 和 kube-public ,除此以外,管理员可以创建新的命名空间以满足需求。

Pod

Pod是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP 以及管理控制容器运行方式的策略选项。

副本控制器(Replication Controller,RC)

RC 确保任何时候 Kubernetes 集群中有指定数量的 pod 副本(replicas)在运行。通过监控运行中的 Pod 来保证集群中运行指定数目的 Pod 副本。指定的数目可以是多个也可以是1个;少于指定数目,RC 就会启动运行新的 Pod 副本;多于指定数目,RC 就会终止多余的 Pod 副本。

副本集(Replica Set,RS)

ReplicaSet(RS)是 RC 的升级版本,唯一区别是对选择器的支持,RS 能支持更多种类的匹配模式。副本集对象一般不单独使用,而是作为 Deployment 的理想状态参数使用。

部署(Deployment)

部署表示用户对 Kubernetes 集群的一次更新操作。部署比 RS 应用更广,可以是创建一个新的服务,更新一个新的服务,也可以是滚动升级一个服务。滚动升级一个服务,实际是创建一个新的 RS,然后逐渐将新 RS 中副本数增加到理想状态,将旧 RS 中的副本数减小到 0 的复合操作;这样一个复合操作用一个RS是不太好描述的,所以用一个更通用的 Deployment 来描述。不建议您手动管理利用 Deployment 创建的 RS。

服务(Service)

Service 也是 Kubernetes 的基本操作单元,是真实应用服务的抽象,每一个服务后面都有很多对应的容器来提供支持,通过 Kube-Proxy 的 port 和服务 selector 决定服务请求传递给后端的容器,对外表现为一个单一访问接口,外部不需要了解后端如何运行,这给扩展或维护后端带来很大的好处。

标签(labels)

Labels 的实质是附着在资源对象上的一系列 Key/Value 键值对,用于指定对用户有意义的对象的属性,标签对内核系统是没有直接意义的。标签可以在创建一个对象的时候直接赋予,也可以在后期随时修改,每一个对象可以拥有多个标签,但 key 值必须唯一。

存储卷(Volume)

Kubernetes 集群中的存储卷跟 Docker 的存储卷有些类似,只不过 Docker 的存储卷作用范围为一个容器,而 Kubernetes 的存储卷的生命周期和作用范围是一个 Pod。每个 Pod 中声明的存储卷由 Pod 中的所有容器共享。支持使用 Persistent Volume Claim 即 PVC 这种逻辑存储,使用者可以忽略后台的实际存储技术,具体关于 Persistent Volumn(pv)的配置由存储管理员来配置。

持久存储卷(Persistent Volume,PV)和持久存储卷声明(Persistent Volume Claim,PVC)

PV 和 PVC 使得 Kubernetes 集群具备了存储的逻辑抽象能力,使得在配置 Pod 的逻辑里可以忽略对实际后台存储技术的配置,而把这项配置的工作交给 PV 的配置者。存储的 PV 和 PVC 的这种关系,跟计算的 Node 和 Pod 的关系是非常类似的;PV 和 Node 是资源的提供者,根据集群的基础设施变化而变化,由 Kubernetes 集群管理员配置;而 PVC 和 Pod是资源的使用者,根据业务服务的需求变化而变化,由 Kubernetes 集群的使用者即服务的管理员来配置。

Ingress

Ingress 是授权入站连接到达集群服务的规则集合。你可以通过 Ingress 配置提供外部可访问的 URL、负载均衡、SSL、基于名称的虚拟主机等。用户通过 POST Ingress 资源到 API server 的方式来请求 Ingress。 Ingress controller 负责实现 Ingress,通常使用负载均衡器,它还可以配置边界路由和其他前端,这有助于以 HA 方式处理流量。

你可能感兴趣的:(云计算,开源)