在K3d中部署Rancher

在之前的文章中,我们学习了如何使用k3d快速创建一个本地的多节点Kubernetes集群环境。作为一个轻量级的Kubernetes发行版,k3s为我们提供了一个简单高效的方式来体验和学习Kubernetes。

然而,对于大多数企业用户来说,仅仅拥有一个裸露的Kubernetes集群是远远不够的。他们还需要一个功能强大且易于使用的Kubernetes管理工具。而Rancher正是当下最受欢迎的Kubernetes管理平台之一。

那么,如何在我们的k3d集群中部署Rancher呢?让我们开始吧!

创建k3d集群

首先,我们需要使用k3d命令创建一个新的集群。由于要在集群中安装Rancher,我们需要开放一些端口映射,用于访问Rancher的Web UI:

sudo k3d cluster create hello-k3d \
    --api-port 6550 \
    -p "9080:80@loadbalancer" -p "9443:443@loadbalancer" \
    --servers-memory 4g \
    --agents-memory 4g \
    --servers 1 \
    --agents 2 

上面的命令会创建一个包含1个server节点和2个agent节点的集群。同时,它将主机的9080端口映射到集群的80端口(HTTP),将9443端口映射到集群的443端口(HTTPS)。

接下来,我们需要将kubeconfig文件复制到当前用户的目录下,这样普通用户就可以执行kubectl命令了:

sudo cat /root/.kube/config > ~/.kube/config

安装Rancher

现在我们可以继续部署Rancher了。Rancher提供了Helm Chart包,可以很方便地在任何Kubernetes集群中安装。

首先添加Rancher的Helm仓库地址:

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

由于Rancher需要cert-manager来自动化证书的管理,所以我们先部署cert-manager:

kubectl create namespace cattle-system

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.crds.yaml

helm repo add jetstack https://charts.jetstack.io

helm repo update

helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace

部署完cert-manager后,我们就可以安装Rancher了:

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=rancher-127-0-0-1.nip.io \
  --set replicas=1 \
  --set bootstrapPassword=1234567890abc

注意将hostname设置为一个合法的DNS名称,我这里使用了nip.io这个服务提供的通配符DNS。如果你的集群IP不是127.0.0.1,对应修改rancher-127-0-0-1.nip.io里的IP即可。

等待Rancher部署完成

kubectl rollout status deployment/rancher -n cattle-system

访问Rancher

最后,打开浏览器,访问 https://rancher-127-0-0-1.nip.io:9443/dashboard, 输入设置的bootstrapPassword,即可进入Rancher的管理界面了。

就这么简单,通过k3d和Helm,我们在本地环境中快速搭建了一个Kubernetes集群,并用Rancher对其进行了统一管理。现在,你可以在本地环境中体验Kubernetes及Rancher提供的各种强大功能了!


在K3d中部署Rancher
https://coding.gs/2024/04/07/k3d/rancher-in-k3d/
作者
K
发布于
2024年4月7日
许可协议