参考:
用于本地实验的小型 Kubernetes:k0s、MicroK8s、kind、k3s 和 Minikube - 知乎
[K8S] 01 - MiniKube, K3S or MicroKube
被坑惨了, 安装了 k3s 本地 80 端口不能用了?-腾讯云开发者社区-腾讯云
k3s 的默认traefik服务不能被代理. 如何解决-高性能服务器开发
1、环境准备
- yum install ntpdate -y
- ntpdate time.windows.com
-
- #默认安装使用containerd作为容器运行时
- #如果没有安装过docker,需要装一下containerd
- yum install containerd -y
- systemctl start containerd && systemctl enable containerd
-
- #确认所有节点的hostname唯一
- hostname
- #不唯一的话,修改hostname
- hostnamectl set-hostname 新hostname
- vim /etc/hosts
- #修改hosts内容
- 127.0.0.1 新hostname
2、安装
- #在master上执行
- curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.26.9+k3s1 INSTALL_K3S_EXEC=server sh -s -
- #在node上执行
- curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.26.9+k3s1 INSTALL_K3S_EXEC=agent sh -s -
- #默认安装使用containerd作为容器运行时,如果想使用docker作为容器运行时,按照下述操作。但一般建议忽略,因为containerd就是docker的后端容器组件,可以减少一层转发
- #在上面命令后面加一个“--docker”,例如在master上安装
- curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.27.6-k3s1 INSTALL_K3S_EXEC=server sh -s - --docker
-
- #验证安装成功
- k3s kubectl get nodes
-
- #为了方便调试和解决一些坑,我们采用手动启动方式,关闭k3s的服务
- #在master上执行
- systemctl stop k3s && systemctl disable k3s
- #在node上执行
- systemctl stop k3s-agent && systemctl disable k3s-agent
3、启动master并禁用traefik
- #在master上启动
- k3s server --disable traefik --kube-proxy-arg=proxy-mode=ipvs
3、在master上安装ingress-nginx
- #安装
- wget -O ingress-nginx.yaml https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/baremetal/deploy.yaml
- sed -i "s/registry.k8s.io\/ingress-nginx\/controller:v1.6.4@sha256:15be4666c53052484dd2992efacf2f50ea77a78ae8aa21ccd91af6baaa7ea22f/woosau\/ingress-nginx-controller:v1.6.4/g" ingress-nginx.yaml
- sed -i "s/registry.k8s.io\/ingress-nginx\/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f/woosau\/ingress-nginx-kube-webhook-certgen:v20220916-gd32f8c343/g" ingress-nginx.yaml
- kubectl create -f ingress-nginx.yaml
-
- #验证安装结果
- kubectl get pod,svc -n ingress-nginx
3、node加入集群
- #在master上查看加入集群的token
- cat /var/lib/rancher/k3s/server/node-token
- #在node上启动并加入master的集群
- k3s agent --server https://master的ip:6443 --token 集群的token
4、卸载k3s
- #要从 Server(master) 节点卸载 K3s
- sh /usr/local/bin/k3s-uninstall.sh
- #要从 Agent(node) 节点卸载 K3
- sh /usr/local/bin/k3s-agent-uninstall.sh