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) 服务器节点。
使用 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
在两台机器上重复上述步骤。