使用 k3OS 安装轻量级 Kubernetes (K3s) 集群

k3OS 是一个轻量级操作系统,优化设计用于运行 Kubernetes (k8s) 或者更具体的轻量级 Kubernetes (k3s) 集群。

k3OS 的主要目标是在运行 Kubernetes (k3s) 集群时最大限度地减少操作系统维护。
k3OS 和 k3s 都是由 Rancher Labs 开发的。

在本文中,我们将安装一个带有 k3OS 操作系统的轻量级 Kubernetes (k3s) 集群。

使用 k3OS 安装 Kubernetes 服务器节点

使用以下命令启动 k3OS 配置。

k3os-24483 [~]$ sudo os-config
Running k3OS configuration
Choose operation
1. Install to disk
2. Configure server or agent
Select Number []: 1

选择所需的操作并按 <ENTER>。

Choose installation partition table type
1. gpt
2. msdos
Select Number [1]: 2

根据硬件选择安装分区表类型。
如果系统是基于 UEFI 的,那么我们必须选择 gpt 分区表类型。
如果系统是基于 BIOS 的,那么我们必须选择 msdos 表分区类型。

按 <ENTER>。

Config system with cloud-init file? [y/N]: N

k3OS 操作系统可以使用 cloud-init 文件进行配置,以自动快速地配置云实例。
cloud-init 是一个单独的主题,超出了本文的范围,因此,为了简单起见,我们现在不使用它。

曾经,我们使用 k3OS 弄脏了手,然后我们可以使用 cloud-init 文件。

Authorize GitHub users to SSH? [y/N]: N

如果我们需要允许用户从这台机器使用 ssh 访问 GitHub,请选择 'y' 否则选择 'N' 。
如果我们选择“y”,那么我们必须提供一个逗号分隔的授权 GitHub 用户列表。

Please enter password for [rancher]:

为 rancher 用户设置密码。

Please enter password for [rancher]: ***
Confirm password for [rancher]: ***
chpasswd: password for 'rancher' changed
Run as server or agent?
1. server
2. agent
Select Number [1]: 1

选择此节点的角色并按 <ENTER>。

Token or cluster secret (optional): karachi

提供集群机密并按 <ENTER>。
当将新节点加入我们的轻量级 Kubernetes (k3s) 集群时,我们将需要此集群密钥。

k3OS 然后在我们的机器上安装和配置它自己。

检查 Kubernetes 集群中的当前节点。

k3os-24483 [~]$ kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
k3os-24483   Ready    <none>   3m44s   v1.14.1-k3s.4

我们已经成功安装了 k3OS 并配置了一个轻量级 Kubernetes (k3s) 服务器节点。

on  it road.com

使用 k3OS 安装 Kubernetes 代理节点

使用以下命令启动 k3OS 配置。

k3os-13179 [~]$ sudo os-config
Running k3OS configuration
Choose operation
1. Install to disk
2. Configure server or agent
Select Number []: 1

选择一个操作并按 <ENTER>。

Choose installation partition table type
1. gpt
2. msdos
Select Number [1]: 2

选择安装分区表类型并按<ENTER>。

Config system with cloud-init file? [y/N]: N

我们没有使用 cloud-init 文件,因此,选择“N”并按 <ENTER>。

Authorize GitHub users to SSH? [y/N]: N

如果我们希望用户从这台机器访问 GiHub,请按 'y' 否则按 'N' 。
按 <ENTER>。

Please enter password for [rancher]: ***
Confirm password for [rancher]: ***
chpasswd: password for 'rancher' changed

为 rancher 用户设置密码。

Run as server or agent?
1. server
2. agent
Select Number [1]: 2

我们将此机器配置为代理节点,因此,选择选项“2”并按 <ENTER>。

URL of server: https://192.168.1.163:6443
Token or cluster secret: karachi

提供轻量级 Kubernetes (k3s) 服务器的 URL 和集群密钥。

然后在这台机器上安装和配置 k3OS。

检查节点状态。

k3os-24483 [~]$ kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
k3os-14464   Ready    <none>   35s   v1.14.1-k3s.4
k3os-24483   Ready    <none>   15m   v1.14.1-k3s.4

检查集群状态。

k3os-24483 [~]$ kubectl cluster-info
Kubernetes master is running at https://localhost:6443
CoreDNS is running at https://localhost:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

测试我们的轻量级 Kubernetes (k3s) 集群

要测试我们的 Kubernetes 集群,请创建一个简单的 nginx Web 服务器。

k3os-24483 [~]$ kubectl run --generator=run-pod/v1 my-nginx --image=nginx --replicas=2 --port=80
pod/my-nginx created

导出 nginx 服务。

k3os-24483 [~]$ kubectl expose deployment my-nginx --port=80 --type=LoadBalancer
service/my-nginx exposed

检查 Kubernetes (K3s) 服务。

k3os-24483 [~]$ kubectl get services --watch
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)        AGE
kubernetes   ClusterIP      10.43.0.1       <none>            443/TCP        36m
my-nginx     LoadBalancer   10.43.231.232   192.168.1.164   80:30692/TCP   101s

在客户端浏览器中浏览 URL http://192.168.1.164.

我们已经成功安装并配置了带有 k3OS 操作系统的轻量级 Kubernetes (K3s) 集群。

安装 k3OS 操作系统

我们已经从GitHub下载了k3OS操作系统的iso。

https://github.com/rancher/k3os

将下载的文件 k3os-amd64.iso 添加到我们的虚拟机中并启动 VM。

选择运行 k3OS LiveCD 或者安装,然后按 <ENTER>。

然后系统启动并到达登录提示。
以牧场主用户身份登录,无需密码。

登录成功后,我们可能会获得一个 Bash shell。
然后,使用以下命令为rancher用户设置密码。
它将使我们能够使用 ssh 客户端登录到这台机器。

使用 ssh 作为 Rancher 用户连接到这台机器。

login as: rancher
rancher@192.168.1.161's password:
Welcome to k3OS!
Refer to https://github.com/rancher/k3os for README and issues
By default mode of k3OS is to run a single node cluster. Use "kubectl"
to access it.  The node token in /var/lib/rancher/k3s/server/node-token
can be used to join agents to this server.

You can configure this system or install to disk using "sudo os-config"
k3os-24483 [~]$

检查k3OS操作系统的版本。

k3os-24483 [~]$ cat /etc/os-release
NAME="k3OS"
VERSION="k3OS v0.2.0-rc4"
ID=k3os
ID_LIKE=alpine
PRETTY_NAME="k3OS v0.2.0-rc4"
VERSION_ID="v0.2.0-rc4"
HOME_URL="https://k3os.io/"
SUPPORT_URL="https://k3os.io/"
BUG_REPORT_URL="https://github.com/rancher/k3os/issues"
ISO_URL="https://github.com/rancher/k3os/releases/download/v0.2.0-rc4/k3os.iso"

检查 Linux 内核版本。

k3os-29512 [~]$ uname -a
Linux k3os-29512 4.15.0-47-generic #50 SMP Tue Apr 23 19:17:07 UTC 2019 x86_64 GNU/Linux

在两台机器上重复上述步骤。

日期:2020-09-17 00:16:29 来源:oir作者:oir