家里的机器资源有点空闲了,之前用Docker跑服务每次要升级都要重新敲命令,比较麻烦,准备开个虚拟机跑个轻量K8s,把原来用Docker跑的服务全部迁移到上面,顺便再装个Rancher做图形化界面,方便之后做容器升级等操作,K8s的cronjob也能做比较复杂的定时任务。
先介绍下环境:
环境 | 版本 |
---|---|
虚拟机OS | Rocky8.8 |
Rancher | 2.7.6 |
K3s | 1.26.9+k3s1 |
0. 初始化
这一块就不详细写了,Rocky8和CentOS7差不多,装好之后记得关闭SELinux和Firewalld就行
1. 下载K3s安装脚本,安装K3s
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh > ./k3s-install.sh
chmod +x ./k3s-install.sh
cat ./k3s-install.sh | \
INSTALL_K3S_VERSION=v1.26.9+k3s1 \
INSTALL_K3S_MIRROR=cn \
sh -s - server
这里就没有继续使用Docker作为底层cri了,而是使用默认的containerd
containerd的管理可以通过crictl
工具进行,基本操作和Docker是一样的,可以参考k8s的文档:链接
这里再补一个containerd导入私有镜像的方法,crictl
不带这个功能,不能像docker一样直接导入
ctr image import ./image.tgz
参考K3s的文档来配置containerd的镜像源: 链接
cat > /etc/rancher/k3s/registries.yaml << EOF
mirrors:
docker.io:
endpoint:
- "https://docker.mirrors.sjtug.sjtu.edu.cn"
EOF
重启K3s
systemctl restart k3s
2. 安装Helm
下载、解压Helm
wget https://get.helm.sh/helm-v3.13.1-linux-amd64.tar.gz
tar -xvf ./helm-v3.13.1-linux-amd64.tar.gz
cp ./linux-amd64/helm /usr/bin/
设置环境变量
cat >> /etc/profile << EOF
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
EOF
source /etc/profile
查看helm状态,看到有k3s部署的helm应用即说明helm安装成功
[root@k3s ~]# helm list -A
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
traefik kube-system 1 2023-10-19 06:29:55.080365796 +0000 UTC deployed traefik-21.2.1+up21.2.0 v2.9.10
traefik-crd kube-system 1 2023-10-19 06:29:53.30597641 +0000 UTC deployed traefik-crd-21.2.1+up21.2.0 v2.9.10
3. 安装Rancher
添加Rancher的Helm仓库
helm repo add rancher-stable https://rancher-mirror.rancher.cn/server-charts/stable
创建Rancher的命名空间
kubectl create namespace cattle-system
安装cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.1/cert-manager.crds.yaml
安装Rancher,根据情况修改域名和超管密码
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.domain.local \
--set bootstrapPassword=changeme \
--version 2.7.6
等待Rancher的pod都跑起来,通过设置的域名和密码访问Rancher管理页面