本教程适用于以下操作系统版本

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 16.04(Xenial Xerus)

本页内容

  • 准备工作
  • 开始之前
  • 安装 Docker CE
  • 管理 Docker 服务
  • 在 Ubuntu 22.04 上安装 Rancher
  • 访问 Rancher Web 界面
  • 管理 Rancher 容器
  • 总结

Rancher 是一个免费、开源且支持多集群的编排平台,能够帮助企业在生产环境中部署容器。它允许您在裸机、私有云、公有云或 vSphere 上简化集群部署,并通过全局安全策略对其进行保护。借助这个容器管理平台,您可以在任何地方部署、管理并运行 Kubernetes。

Rancher 的功能特性

  • 跨主机网络
  • 容器负载均衡
  • 持久化存储服务
  • 服务发现
  • 服务升级
  • 资源管理
  • 多租户与用户管理
  • 多编排引擎

本教程将向您展示如何在 Ubuntu 22.04 上安装 Rancher Kubernetes 容器管理平台。

准备工作

  • 一台运行 Ubuntu 22.04 的服务器。
  • 至少 4 GB 内存。
  • 服务器上已配置 root 密码。

开始之前

在开始之前,建议将所有系统软件包更新并升级到最新版本。您可以通过运行以下命令来更新所有软件包:

apt update
apt upgrade

所有软件包更新完成后,您可以进入下一步。

安装 Docker CE

首先,您需要在服务器上安装 Docker CE。默认情况下,Ubuntu 22.04 的默认软件源中已提供最新版本的 Docker CE。您可以使用以下命令进行安装:

apt install docker.io -y

Docker CE 安装完成后,使用以下命令验证 Docker 版本:

docker version

您应该会看到类似以下的输出:

Client:
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.17.3
 Git commit:        20.10.12-0ubuntu4
 Built:             Mon Mar  7 17:10:06 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.3
  Git commit:       20.10.12-0ubuntu4
  Built:            Mon Mar  7 15:57:50 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.9-0ubuntu3
  GitCommit:        
 runc:
  Version:          1.1.0-0ubuntu1
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        

完成后,您可以进入下一步。

管理 Docker 服务

默认情况下,Docker 服务由 systemd 管理。您可以使用 systemctl 命令轻松管理它。

要启动 Docker 服务并使其在系统重启时自动启动,请运行以下命令:

systemctl start docker
systemctl enable docker

您也可以使用以下命令查看 Docker 的状态:

systemctl status docker

您应该会看到类似以下的输出:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-24 05:09:45 UTC; 24s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 115654 (dockerd)
      Tasks: 7
     Memory: 30.5M
        CPU: 356ms
     CGroup: /system.slice/docker.service
             ??115654 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.440732558Z" level=info msg="scheme \"unix\" not registered, fallback to def>
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.440869430Z" level=info msg="ccResolverWrapper: sending update to cc: {[{uni>
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.440999011Z" level=info msg="ClientConn switching balancer to \"pick_first\">
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.493588262Z" level=info msg="Loading containers: start."
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.728082693Z" level=info msg="Default bridge (docker0) is assigned with an IP>
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.888415790Z" level=info msg="Loading containers: done."
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.919227724Z" level=info msg="Docker daemon" commit=20.10.12-0ubuntu4 graphdr>
Jul 24 05:09:45 ubuntu dockerd[115654]: time="2022-07-24T05:09:45.919727905Z" level=info msg="Daemon has completed initialization"
Jul 24 05:09:45 ubuntu systemd[1]: Started Docker Application Container Engine.

完成后,您可以进入下一步。

在 Ubuntu 22.04 上安装 Rancher

此时,Docker 已安装在您的系统上。您现在可以运行以下命令来下载并启动 Rancher 容器。

docker run -d --name=rancher-server --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:v2.4.18

您应该会看到类似以下的输出:

Unable to find image 'rancher/rancher:v2.4.18' locally
v2.4.18: Pulling from rancher/rancher
11323ed2c653: Pull complete 
b7dc5ddb9fe7: Pull complete 
0372c040ea0d: Pull complete 
5a7eaf28cae2: Pull complete 
0d1eff5b3c25: Pull complete 
041282f2e586: Pull complete 
7cc8371df882: Pull complete 
3150273d5f70: Pull complete 
afc5be66b12f: Pull complete 
178a32bc5aa3: Pull complete 
54d219a8d26f: Pull complete 
ea3ba9f14df5: Pull complete 
a97b83c715bd: Pull complete 
a895bd7633e7: Pull complete 
516c02ccca88: Pull complete 
dcb1f2890247: Pull complete 
Digest: sha256:69a7403fb9fe5fe0e58c5a5ff94d04e2ca74d7fce6ed7f29a5c04311ba14cc79
Status: Downloaded newer image for rancher/rancher:v2.4.18
51405105eee8eed48dcaf7589ef253295275c941fc3963a2ca9e9c43d844b410

上述命令将从 Docker Hub 镜像仓库下载 Rancher 镜像,并基于该镜像创建一个容器。您可以使用以下命令查看已下载的镜像:

docker images

您应该会看到类似以下的输出:

REPOSITORY        TAG       IMAGE ID       CREATED        SIZE
rancher/rancher   v2.4.18   da1ad4a1e248   3 months ago   890MB

您还可以使用以下命令验证正在运行的容器:

docker ps

在以下输出中,您应该会看到 Rancher 容器:

CONTAINER ID   IMAGE                     COMMAND           CREATED          STATUS          PORTS                                                                      NAMES
2d32d612b497   rancher/rancher:v2.4.18   "entrypoint.sh"   23 seconds ago   Up 21 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher-server

完成后,您可以进入下一步。

访问 Rancher Web 界面

此时,Rancher 已安装并监听 443 端口。您现在可以通过 URL https://your-server-ip 访问它。您将被重定向到 Rancher 欢迎界面:

在 Ubuntu 上使用 Rancher 管理 Docker 容器

设置您的管理员密码,然后点击“继续”按钮。您应该会看到类似以下的界面:

在 Ubuntu 上使用 Rancher 管理 Docker 容器

定义您的服务器 URL,然后点击“保存 URL”按钮。您应该会看到类似以下的界面:

在 Ubuntu 上使用 Rancher 管理 Docker 容器

允许收集匿名信息,然后点击“知道了”按钮。在以下界面中,您应该会看到 Rancher 仪表盘:

在 Ubuntu 上使用 Rancher 管理 Docker 容器

管理 Rancher 容器

您还可以使用以下命令查看 Rancher 日志:

docker container logs rancher-server

您应该会看到类似以下的输出:

2022/07/24 05:13:27 [INFO] kontainerdriver azurekubernetesservice listening on address 127.0.0.1:39997
2022/07/24 05:13:27 [INFO] kontainerdriver azurekubernetesservice stopped
2022/07/24 05:13:27 [INFO] dynamic schema for kontainerdriver azurekubernetesservice updating
2022/07/24 05:14:15 [INFO] Catalog-cache removed 2 entries from disk
2022/07/24 05:14:40 [INFO] Updating TLS secret for serving-cert (count: 4): map[listener.cattle.io/cn-127.0.0.1:127.0.0.1 listener.cattle.io/cn-172.17.0.2:172.17.0.2 listener.cattle.io/cn-localhost:localhost listener.cattle.io/cn-syspass.example.com:syspass.example.com listener.cattle.io/hash:e7ccf1ee0884f026725549817c91f5797ccfd133a810b5bd9c7446e03fa9383f]
2022/07/24 05:14:40 [INFO] Active TLS secret serving-cert (ver=2125) (count 4): map[listener.cattle.io/cn-127.0.0.1:127.0.0.1 listener.cattle.io/cn-172.17.0.2:172.17.0.2 listener.cattle.io/cn-localhost:localhost listener.cattle.io/cn-syspass.example.com:syspass.example.com listener.cattle.io/hash:e7ccf1ee0884f026725549817c91f5797ccfd133a810b5bd9c7446e03fa9383f]
2022/07/24 05:14:40 [INFO] Active TLS secret serving-cert (ver=2125) (count 4): map[listener.cattle.io/cn-127.0.0.1:127.0.0.1 listener.cattle.io/cn-172.17.0.2:172.17.0.2 listener.cattle.io/cn-localhost:localhost listener.cattle.io/cn-syspass.example.com:syspass.example.com listener.cattle.io/hash:e7ccf1ee0884f026725549817c91f5797ccfd133a810b5bd9c7446e03fa9383f]
I0724 05:18:41.035933      22 controller.go:606] quota admission added evaluator for: preferences.management.cattle.io
2022/07/24 05:19:08 [INFO] Creating token for user user-jb9gv
time="2022-07-24 05:19:08" level=info msg="Telemetry Client v0.5.14"
time="2022-07-24 05:19:08" level=info msg="Listening on 0.0.0.0:8114"
time="2022-07-24 05:19:08" level=info msg="Collecting anonymous data from https://localhost:443/v3"

要停止 Rancher 容器,请运行以下命令:

docker container stop rancher-server

要启动 Rancher 容器,请运行以下命令:

docker container start rancher-server

要暂停 Rancher 容器,请运行以下命令:

docker container pause rancher-server

要删除 Rancher 容器,请运行以下命令:

docker container remove rancher-server

总结

在本文中,我们介绍了如何在 Ubuntu 22.04 上安装 Rancher。现在,您可以从 Rancher 仪表盘导入您的 Kubernetes 集群或创建一个新的容器,并从集中位置对它们进行统一管理。如果您有任何疑问,欢迎随时向我提问。