使用离线部署容器化k3s,docker,harbor。
K3S部署
1.在https://github.com/k3s-io/k3s.git下载离线部署包,包括对应架构的k3s和镜像包k3s-airgap-images-amd64.tar.gz。

2.获取k3s安装脚本,浏览器访问https://get.k3s.io/,返回内容保存为install.sh

3.将k3s、k3s-airgap-images-amd64.tar.gz、install.sh三个文件上传到服务器。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| # 允许转发,找到net.ipv4.ip_forward属性,值改为1(net.ipv4.ip_forward=1) vi /etc/sysctl.conf # 使配置生效 sysctl -p
# 如果想要部署主节点 chmod 777 install.sh chmod 777 k3s cp k3s /usr/local/bin/k3s tar -xvf k3s-airgap-images-amd64.tar.gz -C /opt/images export INSTALL_K3S_SKIP_DOWNLOAD=true export K3S_IMAGES_DIR=/opt/images ./install
# 如果想要部署从节点 chmod 777 install.sh chmod 777 k3s tar -xvf k3s-airgap-images-amd64.tar.gz -C /opt/images export INSTALL_K3S_SKIP_DOWNLOAD=true export K3S_IMAGES_DIR=/opt/images export K3S_URL=https://<主节点>:6443 # 指定主节点 cat /var/lib/rancher/k3s/server/node-token export K3S_TOKEN=K10172da98fd953b3116d44fc9e7191b5e89bec43398261934e38e15170d8b54768::server:fcff60a5e309474887f82c0f6bb2c123 ./install
# 在启动文件指定节点使用的IP,--node-ip=100.76.48.21 root@VM-4-2-ubuntu:/opt# cat /etc/systemd/system/k3s.service [Unit] # ... [Install] # ... [Service] # ... ExecStart=/usr/local/bin/k3s \ server \ --node-ip=100.76.48.21 \ # 使节点IP配置修改生效 root@VM-4-2-ubuntu:/opt# systemctl daemon-reload
|
4.需要注意,部署前请确认k3s集群中各服务器的/etc/hostname不能相同,修改/etc/hostname时需要同步修改/etc/hosts
5.部署完成使用systemctl status k3s或systemctl status k3s-agent查看部署情况。
kubernetes-dashboard控制台部署,此步骤非离线
1.安装kubernetes-dashboard
1 2 3 4 5 6 7
| kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml # 修改NodePort,其他配置不变 kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard # 访问token获取 kubectl -n kubernetes-dashboard create token my-username # 获取kubernetes-dashboard浏览器访问端口 kubectl -n kubernetes-dashboard get svc
|
2.创建kubernetes-dashboard访问用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| apiVersion: v1 kind: ServiceAccount metadata: name: my-username namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: my-username roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: my-username namespace: kubernetes-dashboard
|
1 2
| # 访问token获取 kubectl apply -f kubernetes-dashboard-user.yaml
|
2.获取token
1 2
| # 访问token获取 kubectl -n kubernetes-dashboard create token my-username
|
3.浏览器访问,填入步骤三获取的token,进入kubernetes-dashboard