K3S单节点部署实践
关闭防火墙
systemctl disable firewalld --now
安装containerd
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install containerd -y
systemctl start containerd && systemctl enable containerd
在CentOS8.3上执行上述命令,会导致yum缺少依赖以及依赖冲突,经测试不用提前安装containerd亦可正常安装K3S
安装k3s
Server节点
前置条件:K3s server 需要 6443 端口才能被所有节点访问。
注意:Server节点至少需要2GB内存,我在搭建测试环境时使用1GB内存,导致了内存不足,需要使用硬盘空间,会大量占用cpu资源(kswapd0进程)。
1. 执行安装脚本
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
指定Docker容器管理
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh| INSTALL_K3S_MIRROR=cn sh -s - --docker
附:K3s Server 配置参考
https://docs.rancher.cn/docs/k3s/installation/install-options/server-config/_index
补充:在安装前建议先修改CentOS的主机名
//查看一下当前主机名的情况,查看全部三种主机名
hostnamectl
//修改主机名
hostnamectl set-hostname xxx
//删除hostname
hostnamectl set-hostname ""
hostnamectl set-hostname "" --static
hostnamectl set-hostname "" --pretty
2. 验证安装是否成功
[root@k3s-server ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3s-server Ready control-plane,master 13m v1.21.2+k3s1
[root@k3s-server ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
metrics-server-86cbb8457f-bpt5v 1/1 Running 0 13m
coredns-7448499f4d-fsvsd 1/1 Running 0 13m
local-path-provisioner-5ff76fc89d-xqlq9 1/1 Running 0 13m
helm-install-traefik-crd-k5dcn 0/1 Completed 0 13m
helm-install-traefik-lg4cs 0/1 Completed 0 13m
svclb-traefik-nnlmh 2/2 Running 0 7m59s
traefik-97b44b794-qlkwx 1/1 Running 0 8m
[root@k3s-server ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 14m
3. 提取join token(agent节点加入server节点时需要)
# 提取join token
[root@k3s-server ~]# cat /var/lib/rancher/k3s/server/node-token
K10ea021e6e6ca43973ceeb1ec005ffe5bc4d4e1b5993914081cdc9480826dbaac1::server:ec6135f63a1e4f4447ea8fe42c6508b1
Agent节点
1. 安装k3s 并加入server节点
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.119.133:6443 K3S_TOKEN=K100b54a42d419cc93e9ead0788b8f7098e519b141d1b134d53e34f918f32340b44::server:6ffc5d0ee282580386323b28a21a652c sh -
2.移除节点
在server节点上运行
kubectl delete node [agent node name]
卸载k3s
如果你使用install.sh脚本安装了 K3s,那么在安装过程中会生成一个卸载脚本。该脚本在您的节点上的/usr/local/bin/k3s-uninstall.sh上创建(或者是k3s-agent-uninstall.sh)。
打开命令行工具,cd到/usr/local/bin目录,运行该脚本即可卸载 K3s:
./k3s-uninstall.sh #或是以下命令
./k3s-agent-uninstall.sh
安装kuboard V3
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
● 等待 Kuboard v3 就绪执行指令 watch kubectl get pods -n kuboard,等待 kuboard 名称空间中所有的 Pod 就绪,如下所示,如果结果中没有出现 kuboard-etcd-xxxxx 的容器,请查看 常见错误 中关于 缺少 Master Role 的描述。
注意:1、这个命令是获取官方最新版本,我第一次使用这个命令时Kuboard版本是V3.1.7.1,使用正常,第二次使用时获取得版本是3.2.0.0,后面这个版本加入了Kubeconfig方式导入集群得功能,但产生了新得bug,即原KubeAgent方式导入得default集群无法使用。
2、kubectl config view查阅得信息并不完整,加密内容无法查看。
2、k3s中得Kubeconfig若未曾指定环境变量,在#HOME/.kube/config路径下将不可见,/etc/rancher/k3s/k3s.yaml疑似为它得默认路径,但使用该文件得内容未能导入集群成功,原因未知。
访问 Kuboard
● 在浏览器中打开链接 http://your-node-ip-address:30080
● 输入初始用户名和密码,并登录
○ 用户名: admin
○ 密码: Kuboard123
卸载kuboard V3
kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
rm -rf /usr/share/kuboard