国内安装k3s

1、安装master

export INSTALL_K3S_EXEC="--docker --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"
curl -sfL https://docs.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需要额外设置或无法运行。

2、安装rancher图形界面

sudo docker run -d --name=rancher2 --restart=unless-stopped -p 9080:80 -p 9443:443 rancher/rancher:stable

通过http://<ip>:9080访问图形界面。

(注意:127.0.0.1:9080和localhost:9080不建议,可能会造成resolv.conf中的域名解析失败,K3S中使用CoreDNS作为域名发现,在后面rancher界面中导入k3s集群出现cattle-system命名空间下的pod处于CrashLoopBackOff 状态);
新建集群选择导入集群,选择三个命令框中的最后一个复制粘贴,在bash中执行粘贴的命令。

执行命令检查是否成功:k3s kubectl get node

3、安装agent

从master获取K3S_URL和K3S_TOKEN

1、查看master主机IP,(注意:master主机和work主机可以通信。)命令如下:

k3s_url="https://192.168.56.1:6443"

2、查看k3s_token,
执行下列命令得到到一串字符。

cat /var/lib/rancher/k3s/server/node-token

复制粘贴成如下形式,得到K3S_TOKEN

k3s_token="K1045d99099808b2be724d058e093979aef001a6fa729971debf2b27f6598e78ab7::server:1ebb67ca054be143acb9dce99c7b70dd"

3、得到如下agent命令行,在work主机中执行

curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=${k3s_url} K3S_TOKEN=${k3s_token} sh -