本次环境基于:Ubuntu20+、系统架构cmdx86、docker进行。
k3s集群部署安装(离线)
-
首先到k3s_github官网下载以下两个文件(根据自己的系统架构选择对应版本,本次下载版本v1.24.15+k3s1)
-
打开https://get.k3s.io/,将其内容复制另存为k3s-install.sh。 将k3s 、 k3s-airgap-images-amd64.tar 、k3s-install.sh这三个文件保存在你服务器的某个文件夹内。然后依次执行以下命令:
$ sudo chmod +x ./k3s
$ sudo cp ./k3s /usr/local/bin
$ sudo mkdir -p /var/lib/rancher/k3s/agent/images/
$ sudo cp ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
$ sudo chmod +x ./k3s-install.sh
#在执行最后一句时,请追加hosts, vim /etc/hosts 将宿主机ip 别名为master
$ sudo INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--docker --node-name=master" ./k3s-install.sh -s - server
- 查看是否成功,获取主节点token
cat /var/lib/rancher/k3s/server/node-token
- 从节点部署。(修改hosts 别名为node-1,将以下token更换为第三步获取的值),重复第二步的操作后,最后一行命令改为以下命令。
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--docker --node-name=node-1" K3S_URL=https://master:6443 \
K3S_TOKEN=K103f7c45e764bc12a43ec27f5c9d2009b839bdd7b70713e249a8bc0a4efa058a1d::server:ac118cdb96a3bf19f33ebe85e024a52b ./k3s-install.sh
- 将主节点的/etc/rancher/k3s/k3s.yaml 复制到从节点,从节点如果没有/etc/rancher/k3s目录,则手动创建。然后修改从节点的k3s.yaml内容中的:
server:https://127.0.0.1:6443 -> server: https://master:6443
- 最后所有节点中修改 /etc/profile。
vim /etc/profile
追加 KUBECONFIG=/etc/rancher/k3s/k3s.yaml
到最后一行,保存后执行加载 source /etc/profile
。
- 完成后可在主节点查看,返回以下内容则为成功。
kubectl get nodes
#返回信息
helm + cret-mananger部署
- 下载helm :https://get.helm.sh/helm-v3.7.2-linux-amd64.tar.gz (当前系统x86版本,可自行根据版本替换)
- 将下载后的包放到服务器任意一个目录,然后执行以下命令:
tar -xvf helm-v3.7.2-linux-amd64.tar.gz
cp -r linux-amd64/helm /usr/local/bin
- 验证是否安装成功:
helm version
,返回成功回显:version.BuildInfo{Version:“v3.7.2”, GitCommit:“1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4”, GitTreeState:“clean”, GoVersion:“go1.16.9”} - 安装 cert-manager
cd /opt
sudo wget https://github.com/cert-manager/cert-manager/releases/download/v1.12.2/cert-manager.yaml
##部署
kubectl apply -f cert-manager.yaml
##查看部署情况(ps:检查服务运行状态,若长时间有一个服务没有正常运行,
##则删除重来,删除命令:kubectl delete -f cert-manager.yaml, trafik一直Completed没关系)
kubectl get pods -A
5.设置cret-mananger(还是在 opt目录下)
cat <<EOF > letsencrypt-prod-issuer.yaml
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-prod
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# 填写你的email
email: user@example.com
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt-prod
# Enable the HTTP-01 challenge provider
solvers:
# An empty 'selector' means that this solver matches all domains
- selector: {}
http01:
ingress: {}
EOF
rancher部署
- 设置helm仓库
##国内仓库
helm repo add rancher-stable https://rancher-mirror.rancher.cn/server-charts/stable
- 安装rancher
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
##指定域名 随便自定义一个域名
--set hostname=rancher.my.cn\
##使用Let's Encrypt颁发的证书
--set ingress.tls.source=letsEncrypt \
##指定版本
--version 2.7.4 \
##指定邮箱
--set letsEncrypt.email=xxx@xx.xx
执行后出现以下信息代表成功
更多部署情况请参考,官网。
- rancher安装好后,由于域名是由自己 自定义的所以本机需要访问域名,需要修改wind的host,将安装rancher的宿主机ip 别名为你自定义的域名。
4.访问页面