K3S 从放弃到入门(一)先装起来

2022-04-01 09:59:27 浏览数 (1)

本篇文章记录自己手动安装K3S的过程。本次测试环境为两台轻量应用服务器,配置分别为2核4G、4核4G,系统镜像选择CentOS 8.2

规划是在2核4G服务器上面部署主节点、在4核4G服务器上面部署从节点。

文件准备

因为国内网络环境复杂,在线安装下载相关文件缓慢、甚至无法下载,所以本次安装方式为离线安装。需要提前下载相关文件,并上传到服务器上,进行离线安装。

首先去这个地方,选择一个自己喜欢的版本下载,我这里选择的是v1.23.4 k3s1:

image-20220329075518837.pngimage-20220329075518837.png

其次,还需要访问https://get.k3s.io/,把安装脚本下载下来,保存为 install.sh

开始安装

开放端口:主节点需要开放TCP:6443 UDP:8472两个端口,从节点需要开放UDP:8472端口。都只需要内网开放就行了。

敲命令:

代码语言:shell复制
gunzip k3s-airgap-images-amd64.tar.gz #解压缩
sudo mkdir -p /var/lib/rancher/k3s/agent/images/
chmod a x k3s install.sh
sudo cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
sudo cp k3s /usr/local/bin/

主节点运行:

代码语言:shell复制
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh --node-name master

等上一小会儿,获取token:

代码语言:shell复制
cat /var/lib/rancher/k3s/server/token

从节点运行:

代码语言:shell复制
INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://{masterip}:6443 K3S_TOKEN={token} ./install.sh --node-name slave-01

其中,{serverip}为主节点内网地址的IP,{token}是上一步获取到的token

运行命令kubectl get nodes,查看下安装是否成功:

2.png2.png

安装dashboard

首先需要下载这个文件到本地https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

运行命令kubectl apply -f recommended.yaml,稍等片刻就安装完了。

外网访问dashboard

这里先临时采用将 serverice 改成 nodeport 的方式。

运行命令kubectl -n kubernetes-dashboard edit service kubernetes-dashboard

将service的type改成NodePort

image-20220329082413270.pngimage-20220329082413270.png

如果没有指定端口号,系统会随机选择一个端口,使用命令kubectl get service -n kubernetes-dashboard查看下端口号,我这里是32008,在轻量后台放行TCP:32008。

image-20220329082505366.pngimage-20220329082505366.png

准备俩文件:

dashboard.admin-user.yml

代码语言:yaml复制
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

dashboard.admin-user-role.yml

代码语言:yaml复制
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: kubernetes-dashboard

运行命令:

代码语言:shell复制
kubectl create -f dashboard.admin-user.yml -f dashboard.admin-user-role.yml

使用命令获取token:

代码语言:shell复制
kubectl -n kubernetes-dashboard describe secret admin-user-token | grep '^token'

用获取到的token,访问https://{masterip}:32008/#/login 就可以登录dashboard了。其中{masterip}是主节点的外网IP地址。

3.png3.png

完结,撒花!

0 人点赞