0%

使用Rancher管理K3s - liu0076 - 博客园

Excerpt

rancher中国镜像站地址 https://rancher-mirror.oss-cn-beijing.aliyuncs.com/ https://rancher-mirror.rancher.cn/k3s rancher 路径和中文镜像的对应关系 k3s 安装路径 https://get.k3s


rancher中国镜像站地址

https://rancher-mirror.oss-cn-beijing.aliyuncs.com/

https://rancher-mirror.rancher.cn/k3s 

rancher 路径和中文镜像的对应关系

参考文档

部署Rancher Manager

https://ranchermanager.docs.rancher.com/zh/getting-started/quick-start-guides/deploy-rancher-manager/helm-cli  

在kubernetes 集群上安装/升级 Rancher

https://ranchermanager.docs.rancher.com/zh/pages-for-subheaders/install-upgrade-on-a-kubernetes-cluster    

在Linux上安装K3s

1、优化镜像拉取

优化containerd的镜像仓库,参考k3s和containerd 。

2、使用命令部署k3s

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.24.9+k3s2 sh -

保存kubeconfig 到你rancher机器上

1、mkdir -p /root/.kube

2、scp root@<IP_OF_LINUX_MACHINE>:/etc/rancher/k3s/k3s.yaml ~/.kube/config

cp /etc/rancher/k3s/k3s.yaml ~/.kube/config

在kubeconfig中编辑Rancher Server URL

你需要将 server 字段的值更改为 <IP_OF_LINUX_NODE>:6443。你可以通过端口 6443 访问 Kubernetes API Server,通过端口 80 和 443 访问 Rancher Server。你需要进行此编辑,以便你从本地工作站运行 Helm 或 kubectl 命令时,能够与安装了 Rancher 的 Kubernetes 集群进行通信。  

vi ~/.kube/config

3、使用helm 来安装Rancher

helm版本:helm-v3.11.0-rc.2-linux-amd64.tar.gz

1、tar -zxvf helm-v3.11.0-rc.2-linux-amd64.tar.gz

2、mv linux-amd64/helm /usr/local/bin/helm

4、使用helm安装rancher

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

2、kubectl create namespace cattle-system

 #从此路径下载cert-manager.crds.yaml

3、kubectl apply -f cert-manager.crds.yaml

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

5、helm repo update

6、安装自签证书

helm install cert-manager jetstack/cert-manager –namespace cert-manager –create-namespace –version v1.7.1

7、安装rancher

复制代码

1
2
3
4
5
<span>helm <span>install rancher rancher-latest/<span>rancher \</span></span>     <br>      </span>--namespace cattle-<span>system \
</span>--set <span>hostname</span>=<span>rancher.my.org \
</span>--set replicas=<span>1</span><span> \
</span>--set bootstrapPassword=<span>admin \
</span>--dry-run

复制代码

note:

1、安装特定的rancher版本: –set rancherImageTag=latest  

8、效验rancher运行

kubectl -n cattle-system rollout status deploy/rancher

查看rancher 部署状态:

kubectl -n cattle-system get deploy rancher

编辑rancher 部署:

kubectl -n cattle-system edit deploy/rancher

9、请保存你使用的–set选项。使用Helm 升级Rancher 到新版本时,你将需要使用相同的选项。

10、将新节点添加到k3s集群

k3s agent –server HTTP://HOSTNAME:PORT –token TOKEN

故障处理

Rancher Server Kubernetes 集群的问题排查:

https://ranchermanager.docs.rancher.com/zh/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/troubleshooting

导入k3s集群到rancher 中失败原因:

一、集群添加不成功,一直处于pending状态

1、查看pod状态

kubectl get pods -A

2、查看cattle-cluster-agent容器日志

kubectl logs CONTAINER-NAME -n cattle-system

3、由于客户端配置了hosts,但集群节点不知道 rancher.my.org 对应的是哪个机器。

解决方案

1、在所有节点配置/etc/hosts,先让所有节点都能认识 rancher.my.org。

vim /etc/hosts

#IP rancher.my.org

2、为Agent Pod 添加主机别名(/etc/hosts)

View Code

 二、导入完成后,一直处于wait状态,dns问题

level=error msg=”failed to call leader func: settings.management.cattle.io \“install-uuid\“ not found”

level=error msg=”failed to call leader func: settings.management.cattle.io \“install-uuid\“ not found”

 三、报错lockup

kernel:NMI watchdog: BUG: soft lockup - CPU#1 stuck for 29s! [containerd-shim:10281]

解决方案:

echo 30 > /proc/sys/kernel/watchdog_thresh

sysctl -w kernel.watchdog_thresh=30

四、镜像拉取不下来

k3s使用containerd做镜像管理工具,优化containerd的镜像仓库,参考k3s和containerd 。 

优化选项

# 修该容器引擎,定义变量 INSTALL_K3S_EXEC

export INSTALL_K3S_EXEC=”–docker –write-kubeconfig ~/.kube/config –write-kubeconfig-mode 666”

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

命令参数解释:

INSTALL_K3S_EXEC=”(略)”效果为启动k3s服务时使用的额外参数。

--docker :效果为使用docker而不是默认的containerd。

--write-kubeconfig-mode 666 :效果为将配置文件权限改为非所有者也可读可写,进而使kubectl命令无需root或sudo。

--write-kubeconfig ~/.kube/config :效果为将配置文件写到k8s默认会用的位置,而不是k3s默认的位置/etc/rancher/k3s/k3s.yaml。后者会导致istio、helm需要额外设置或无法运行。

k3s 常用命令

卸载k3s

/usr/local/bin/k3s-uninstall.sh

从agent节点卸载k3s

/usr/local/bin/k3s-agent-uninstall.sh