更新系统[button color="light" icon="" url="https://www.lius.fun/13.html" type="round"]参考链接[/button]
修改hosts文件,添加以下内容
192.168.1.10 k8s-lius
取消swap分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
安装docker
curl https://releases.rancher.com/install-docker/20.10.sh | sh
不要使用最新的26,Rancher可能不兼容
安装Rancher
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /opt/rancher/data:/var/lib/rancher --privileged rancher/rancher:v2.6.9
# 找到密码
docker logs ${container-id} 2>&1 | grep "Bootstrap Password:"
Rancher注册过程中查看配置日志
[INFO ] [ingress] removing admission batch jobs if they exist
[INFO ] [addons] Saving ConfigMap for addon rke-ingress-controller to Kubernetes
[INFO ] [addons] Successfully saved ConfigMap for addon rke-ingress-controller to Kubernetes
[INFO ] [addons] Executing deploy job rke-ingress-controller
[INFO ] [ingress] removing default backend service and deployment if they exist
[INFO ] [ingress] ingress controller nginx deployed successfully
[INFO ] [addons] Setting up user addons
[INFO ] [addons] no user addons defined
[INFO ] Finished building Kubernetes cluster successfully
注册完毕
查看注册情况



安装kutectl
#下载最新版本:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
#验证二进制文件(可选)
#下载 kubectl 校验和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
#根据校验和文件验证 kubectl 二进制文件:
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
如果有效,则输出为:
kubectl: OK
#安装 kubectl
install -o root -g root -m 0755 kubectl /usr/bin/kubectl
#测试以确保您安装的版本是最新的:
kubectl version --client
#将rancher集群中kubeconfig的内容复制到服务器config中
mkdir -p $HOME/.kube
vi $HOME/.kube/config #粘贴复制的内容
#测试kubectl
kubectl get node
下载文件传入到主节点 $HOME/.kube/config
Rancher报错
[etcd] Failed to bring up Etcd Plane: etcd cluster is unhealthy: hosts [192.168.100.666] failed to report healthy. Check etcd container logs on each host for more information
mstart节点执行
docker stop $(docker ps -aq) #停止所有停止的容器
docker system prune -f #清理未使用的镜像
docker volume rm $(docker volume ls -q) #删除所有数据卷
docker image rm $(docker image ls -q) #删除所有镜像
[tag type="info"]镜像和数据卷非必要可以不用删除[/tag]
rm -rf /etc/ceph \
/etc/cni \
/etc/kubernetes \
/opt/cni \
/opt/rke \
/run/secrets/kubernetes.io \
/run/calico \
/run/flannel \
/var/lib/calico \
/var/lib/etcd \
/var/lib/cni \
/var/lib/kubelet \
/var/lib/rancher/rke/log \
/var/log/containers \
/var/log/pods \
/var/run/calico
Rancher忘记密码
docker exec -ti <容器id> reset-password
Rancer报错
新建集群后,一直显示无法 Waiting for API to be available,日志显示 [Disconnected] Cluster agent is not connected
- cattle-cluster-agent貌似使用宿主机的hosts制定,需要DNS解析才可以。我注册下游RKE2集群时碰到这个问题,后来添加外部DNS解决。
- RKE 的集群部署完成之后会通过 k8s_cluster-register_cattle-cluster-agent 这个容器 告诉Rancher服务已经部署完毕,但是这个容器的内部 HOSTS 没有配置我们Rancher服务的域名(集群和Rancher不在同一个网络),导致没有办法通信,一直无法注册成功。 我在这个容器内部 手动修改了 /etc/hosts 添加了我们的域名。