目录
部署Ubuntu22和k8s环境
环境准备
虚拟机安装ubantu
配置hosts
配置静态ip地址
配置国内阿里云的源
Master节点安装sealos软件
启用root和允许ssh远程连接
禁用firewalld和iptables
关闭交换分区
配置ipvs功能
配置时间同步
使用sealos部署k8s集群
增加K8s的master节点
增加K8s的node 节点
分配worker role
查看集群
删除 K8s 节点的node 节点
删除 master 节点
清理 K8s 集群
安装nerdctl
基本用法:
镜像换源:
安装Dashboard
创建账号
访问dashboard
部署Ubuntu22和k8s环境
环境准备
虚拟机安装ubantu
这里我们需要提供 5 个节点
创建全新的虚拟机:
这里使用的是Ubantu22.04
进入ubantu安装界面,基本上使用的默认设置
注意要打开SSH
等待安装
出现以下界面说明安装完成,按下Enter,开始部署
查看版本,Ubuntu 22.04系统,内核版本:5.15.0-118-generic,
配置hosts
在每个节点上添加 hosts 信息:
user1@k8s-master-1:~$ vim /etc/hosts
127.0.0.1 localhost
127.0.1.1 k8s-master-1# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.254.144 k8s-master-1
192.168.254.146 k8s-node-1
192.168.254.147 k8s-node-2
节点的 hostname 必须使用标准的 DNS 命名,另外千万别用默认 localhost 的 hostname,会导致各种错误出现的。在 Kubernetes 项目里,机器的名字以及一切存储在 Etcd 中的 API 对象,都必须使用标准的 DNS 命名(RFC 1123)。可以使用命令 hostnamectl set-hostname xxx 来修改 hostname。
以下是一些基本的安装要求:
● 每个集群节点应该有不同的主机名。主机名不要带下划线。
● 所有节点的时间需要同步。
● 需要在 K8s 集群的第一个 master 节点上运行 sealos run 命令,目前集群外的节点不支持集群安装。
● 建议使用干净的操作系统来创建集群。不要自己装 Docker!
● 支持大多数 Linux 发行版,例如:Ubuntu、CentOS、Rocky linux。
● 支持 Docker Hub 中的所有 Kubernetes 版本。
● 支持使用 Containerd 作为容器运行时。
● 在公有云上安装请使用私有 IP。
配置静态ip地址
首先我们需要在 master 节点下载 Sealos 命令行工具,我们可以通过运行命令来获取版本列表。为了防止所有的节点服务器ip地址出现变化,导致日后k8s集群重启出现异常,需要先给master和所有node节点配置好静态ip地址。
Ubuntu 22 server里配置静态ip地址
root@master-1:~# cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
addresses: [192.168.254.144/24] #本台虚拟机的ip地址
routes:
- to: 0.0.0.0/0
via: 192.168.254.2
metric: 100
dhcp4: false
nameservers:
addresses: [114.114.114.114, 192.168.1.1]
version: 2
renderer: networkd
root@master-1:~# netplan apply
其他的节点服务器都需要进行配置静态ip地址,具体ip地址可以提前规划好,这里不一一演示。
配置国内阿里云的源
第一步:备份原配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
第二步:编辑sources.list文件
打开/etc/apt/sources.list文件,并将原有的镜像源替换为阿里云的镜像地址:
sudo vim /etc/apt/sources.list
# 阿里云Debian稳定版源
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
# 更新和安全更新
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# 额外的软件包
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# 安全更新
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
第三步:更新索引并验证
完成替换后,保存文件并退出编辑器,然后执行以下命令以更新软件包列表并确保新的源能够正常工作:
sudo apt update
如果没有任何错误提示且更新过程顺利完成,则说明已经成功切换到了阿里云的软件源。后续安装或升级软件时会从阿里云的服务器下载所需的软件包。
安装Ubuntu系统的时候设置了一个普通用户user1密码设置为123456,
所有的节点都配置相同的用户和密码,用户名user1 设置123456作为密码。
后面都要启用root用户,并且设置密码为123456同时允许root用户ssh远程连接。
Sealos run命令在执行的过程中会使用root用户去执行。
Master节点安装sealos软件
使用包管理工具安装:
root@k8s-master-1:~# echo "deb [trusted=yes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list
root@k8s-master-1:~# sudo apt update
root@k8s-master-1:~# sudo apt install sealos
root@k8s-master-1:~# sealos version
SealosVersion:
buildDate: "2024-07-11T10:14:51Z"
compiler: gc
gitCommit: 02327d53e
gitVersion: 5.0.0
goVersion: go1.20.14
platform: linux/amd64
要使用 Sealos 安装 Kubernetes 集群非常简单,只需要在 master 节点上运行 sealos run 命令,然后指定一些参数即可。比如我们这里安装一个 v1.27.10 版本的集群(v1.28.x 版本暂时有问题),并使用 Cilium 网络插件,然后指定 master 和 node 节点的 IP 地址,最后指定 ssh 的密码即可。
启用root和允许ssh远程连接
需要在Ubuntu系统里运行root用户登录,所有的节点服务器都需要激活root用户,并且允许root用户ssh远程连接。
操作步骤:
修改ssh服务的配置运行root用户登录
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
刷新ssh服务
sudo service ssh restart
激活root用户,并且设置123456为root用户密码
sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
禁用firewalld和iptables
安装K8S前关闭iptables和firewalld主要是为了避免防火墙规则与K8S网络组件间的通信冲突,确保网络通信无阻碍,并简化配置和调试过程。
ufw disable
关闭交换分区
Swap交换分区通常位于磁盘上,其访问速度远低于物理内存。当系统内存不足时,如果启用swap,容器运行所需的内存数据可能会被交换到swap分区,导致磁盘I/O负载增加,从而显著降低容器的运行性能。
频繁的磁盘I/O操作不仅会降低性能,还可能导致系统不稳定,特别是在高负载情况下,关闭swap可以避免因swap使用而引入的潜在稳定性问题。
Kubernetes官方文档和社区中的最佳实践通常建议关闭swap,以确保集群的稳定性和性能。
# 临时关闭
swapoff -a
# 永久关闭
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
配置ipvs功能
Kubernetes官方推荐使用IPVS作为负载均衡的实现方式之一。
IPVS在性能、灵活性和可扩展性方面都有明显优势,能够满足大规模集群和高并发场景下的需求。
# 安装ipset和ipvsadm
apt install -y ipvsadm ipsetcat > /etc/modules-load.d/ipvs.conf << EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF# 重启
reboot# 查看对应的模块是否加载成功
lsmod | grep -e ip_vs -e nf_conntrack
配置时间同步
# 安装服务
apt install -y chrony
# 启动chronyd服务
systemctl start chrony && systemctl enable chrony
使用sealos部署k8s集群
下面命令可以自动帮助安装k8s集群,123456是所有节点的root用户的密码,建议设置成相同的密码,下面的命令在master节点上运行。
sudo sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.10 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
--masters 192.168.254.144 \
--nodes 192.168.254.146,192.168.254.147 -p '123456'
Yes [y/yes], No [n/no]: y
部署一个包含 Kubernetes 1.27.10、Helm 3.9.4 和 Cilium 1.13.4 的集群,同时指定了一个 master 节点和两个 node 节点的 IP 地址,并设置了相同的密码 123456
用于这些节点。
这里需要等待一段时间等待部署。
查看部署k8s后的节点
root@k8s-master-1:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master-1 Ready control-plane 2m27s v1.27.10
k8s-node-1 Ready <none> 78s v1.27.10
k8s-node-2 Ready <none> 78s v1.27.10
查看kube-system命名空间的pod
root@k8s-master-1:~# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
cilium-b8dcz 1/1 Running 0 50m
cilium-blp4p 1/1 Running 0 50m
cilium-operator-86666d88cb-bhptr 1/1 Running 2 (4m43s ago) 50m
cilium-xjqkg 1/1 Running 0 50m
coredns-5d78c9869d-kz68z 1/1 Running 0 51m
coredns-5d78c9869d-r7vxx 1/1 Running 0 51m
etcd-k8s-master-1 1/1 Running 0 52m
kube-apiserver-k8s-master-1 1/1 Running 1 (4m18s ago) 52m
kube-controller-manager-k8s-master-1 1/1 Running 1 (51m ago) 52m
kube-proxy-9xf8l 1/1 Running 0 51m
kube-proxy-j7hv2 1/1 Running 0 51m
kube-proxy-rp86k 1/1 Running 0 51m
kube-scheduler-k8s-master-1 1/1 Running 1 (51m ago) 52m
kube-sealos-lvscare-k8s-node-1 1/1 Running 0 2m55s
kube-sealos-lvscare-k8s-node-2 1/1 Running 0 2m55s
增加K8s的master节点
新加的节点同样进行环境准备的相关操作。
增加 K8s 节点和增加 node 节点,需要在新建的虚拟机里添加所有节点服务器的名字和对应的ip地址。
新增的k8s-master-2是Ubuntu22.04系统。
cat /etc/hosts
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.254.144 k8s-master-1192.168.254.145 k8s-master-2
192.168.254.146 k8s-node-1
192.168.254.147 k8s-node-2
在k8s-master-2上启用root用户,允许root用户远程访问ssh服务,root用户密码设置为123456
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
sudo service ssh restart
sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
在第1个master上进行操作,因为它安装了sealos软件。
切换到root用户进行。
k8s-master-2上的root用户密码需要和前面的master节点密码一样。
前面创建k8s集群的时候使用过密码123456作为所有节点的密码。
user1@k8s-master-1:~$ su - root
Password:
root@k8s-master-1:~# sealos add --masters 192.168.254.145
Yes [y/yes], No [n/no]: y
出现如图所示画面说明添加成功
增加K8s的node 节点
新加的节点同样进行环境准备的相关操作。
k8s-node-3节点的系统是Ubuntu22.04,在k8s-node-3上启用root用户,允许root用户远程访问ssh服务,将123456设置为root用户密码。
user1@k8s-node-3:~$ cat /etc/issue
Ubuntu 22.04.4 LTS \n \l
user1@k8s-node-3:~$ uname -r
5.15.0-97-generic
修改ssh服务的配置文件,增加运行root用户登录
user1@k8s-node-3:~$ sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
重启ssh服务
user1@k8s-node-3:~$ sudo service ssh restart
激活root用户,并且设置123456为root用户密码。
user1@k8s-node-3:~$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
更新源,该版本默认使用的清华源
user1@k8s-node-3:~$ sudo apt update
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
Hit:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates InRelease
Hit:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports InRelease
Fetched 110 kB in 2s (58.4 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
2 packages can be upgraded. Run 'apt list --upgradable' to see them.
在master节点上执行下面的命令,192.168.254.148是k8s-node-3的ip地址,它的root用户的密码是123456并且运行ssh远程登录
root@k8s-master-1:~# sealos add --nodes 192.168.254.148
分配worker role
# 在master上执行
kubectl label node k8s-node-1 node-role.kubernetes.io/worker=worker
kubectl label node k8s-node-2 node-role.kubernetes.io/worker=workerkubectl label node k8s-node-3 node-role.kubernetes.io/worker=worker
......
查看集群
查看节点
root@k8s-master-1:~# kubectl get nodes
查看命名空间
root@k8s-master-1:~# kubectl get ns
NAME STATUS AGE
default Active 6m42s
kube-node-lease Active 6m42s
kube-public Active 6m42s
kube-system Active 6m42s
查看所有的pod
root@k8s-master-1:~# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system cilium-6v9mh 1/1 Running 1 (2m6s ago) 5m30s
kube-system cilium-g6gms 1/1 Running 1 (2m10s ago) 5m30s
kube-system cilium-lfv47 1/1 Running 1 (2m11s ago) 5m30s
kube-system cilium-operator-86666d88cb-mvjln 1/1 Running 1 (2m6s ago) 5m30s
kube-system cilium-vcmqj 1/1 Running 1 (2m8s ago) 5m30s
kube-system cilium-w4dbl 1/1 Running 1 (2m6s ago) 5m30s
kube-system coredns-5d78c9869d-5nfqb 1/1 Running 1 (2m11s ago) 6m40s
kube-system coredns-5d78c9869d-gddw7 1/1 Running 1 (2m11s ago) 6m40s
kube-system etcd-k8s-master-1 1/1 Running 4 (2m11s ago) 6m53s
kube-system etcd-k8s-master-2 1/1 Running 1 (2m8s ago) 6m27s
kube-system kube-apiserver-k8s-master-1 1/1 Running 5 (2m11s ago) 6m51s
kube-system kube-apiserver-k8s-master-2 1/1 Running 5 (2m8s ago) 6m12s
kube-system kube-controller-manager-k8s-master-1 1/1 Running 7 (2m11s ago) 6m52s
kube-system kube-controller-manager-k8s-master-2 1/1 Running 5 (2m8s ago) 6m26s
kube-system kube-proxy-9v988 1/1 Running 1 (2m11s ago) 6m39s
kube-system kube-proxy-fn8r6 1/1 Running 1 (2m8s ago) 6m27s
kube-system kube-proxy-jvgrp 1/1 Running 1 (2m6s ago) 5m40s
kube-system kube-proxy-m5lhc 1/1 Running 1 (2m10s ago) 5m36s
kube-system kube-proxy-tl9zk 1/1 Running 1 (2m6s ago) 5m38s
kube-system kube-scheduler-k8s-master-1 1/1 Running 7 (2m11s ago) 6m52s
kube-system kube-scheduler-k8s-master-2 1/1 Running 5 (2m8s ago) 6m12s
kube-system kube-sealos-lvscare-k8s-node-1 1/1 Running 3 (54s ago) 5m23s
kube-system kube-sealos-lvscare-k8s-node-2 1/1 Running 2 (2m6s ago) 5m12s
kube-system kube-sealos-lvscare-k8s-node-3 1/1 Running 2 (2m6s ago) 5m27s
删除 K8s 节点的node 节点
root@k8s-master-1:~#sealos delete --nodes 192.168.254.146,192.168.254.147
删除 master 节点
root@k8s-master-1:~#sealos delete --masters 192.168.254.145
清理 K8s 集群
root@k8s-master-1:~#sealos reset
注意:sealos reset 命令的主要功能是重置或清理 Sealos 部署的 Kubernetes 集群。这个命令会执行一系列操作,以尽可能地将集群恢复到初始状态或彻底删除集群配置,包括删除所有已部署的组件、节点信息、配置文件等。因此在使用之前务必确认是否真的需要重置集群。
安装nerdctl
wget https://github.com/containerd/nerdctl/releases/download/v1.7.6/nerdctl-1.7.6-linux-amd64.tar.gz
# 解压安装包到 /usr/local/bin 目录
sudo tar xzvf nerdctl-1.7.6-linux-amd64.tar.gz -C /usr/local/bin
# 确保 nerdctl 二进制文件具有执行权限
sudo chmod +x /usr/local/bin/nerdctl
# 验证安装
nerdctl --version
基本用法:
(1)容器管理
# 查看正在运行的容器(包括停止的)
nerdctl ps -a
# 启动一个新容器
nerdctl run -it --rm alpine
# --rm 确保 alpine 容器在执行完 echo "Hello, World!" 命令后会被自动删除,而不需要手动执行 docker rm 或 nerdctl rm
nerdctl run --rm alpine echo "Hello, World!"
# -d 后台运行
# 停止一个正在运行的容器
nerdctl stop <container_id>
# 删除一个容器
nerdctl rm <container_id>
(2)镜像管理
# 查看所有镜像
nerdctl images
# 拉取镜像
nerdctl pull nginx
# 删除镜像
nerdctl rmi nginx
# 导入镜像
nerdctl load [OPTIONS]
# 导出镜像:
nerdctl save [OPTIONS] IMAGE [IMAGE...]
# 镜像标签:
nerdctl tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
(3)数据卷管理
# 创建数据卷
nerdctl volume create my-volume
# 列出数据卷
nerdctl volume ls
# 删除数据卷
nerdctl volume rm my-volume
(4)网络管理
# 创建网络
nerdctl network create my-network
# 列出网络
nerdctl network ls
# 删除网络
nerdctl network rm my-network
镜像换源:
当nerdctl拉取镜像时会从docker.io中拉取,但是国内是访问不到的,所以我们要进行换源
(1)编辑 containerd 配置文件
vim /etc/containerd/config.toml
version = 2
root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0[grpc]
address = "/run/containerd/containerd.sock"
uid = 0
gid = 0
max_recv_message_size = 16777216
max_send_message_size = 16777216[debug]
address = "/run/containerd/containerd-debug.sock"
uid = 0
gid = 0
level = "warn"[timeouts]
"io.containerd.timeout.shim.cleanup" = "5s"
"io.containerd.timeout.shim.load" = "5s"
"io.containerd.timeout.shim.shutdown" = "3s"
"io.containerd.timeout.task.state" = "2s"[plugins]
[plugins."io.containerd.grpc.v1.cri"]
sandbox_image = "sealos.hub:5000/pause:3.9"
max_container_log_line_size = -1
max_concurrent_downloads = 20
disable_apparmor = false
[plugins."io.containerd.grpc.v1.cri".containerd]
snapshotter = "overlayfs"
default_runtime_name = "runc"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"
runtime_engine = ""
runtime_root = ""
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
mkdir /etc/containerd/certs.d/docker.io/ -p
vim /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://registry-1.docker.io"
[host."https://docker.m.daocloud.io"]
capabilities = ["pull", "resolve", "push"]
(2)刷新服务
sudo systemctl restart containerd
至此就可以拉取镜像了
安装Dashboard
# 修改Service部分,改为NodePort对外暴露端口
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml\
安装
kubectl apply -f recommended.yaml
查看
kubectl get pods,svc -n kubernetes-dashboard
Running状态说明安装成功
创建账号
创建dashboard-access-token.yaml文件
# Creating a Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
# Creating a ClusterRoleBinding
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
---
# Getting a long-lived Bearer Token for ServiceAccount
apiVersion: v1
kind: Secret
metadata:
name: admin-user
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: "admin-user"
type: kubernetes.io/service-account-token
# Clean up and next steps
# kubectl -n kubernetes-dashboard delete serviceaccount admin-user
# kubectl -n kubernetes-dashboard delete clusterrolebinding admin-user
执行
root@k8s-master-1:~/dashboard# vim dashboard-access-token.yaml
root@k8s-master-1:~/dashboard# kubectl apply -f dashboard-access-token.yaml
serviceaccount/admin-user created
clusterrolebinding.rbac.authorization.k8s.io/admin-user created
secret/admin-user created
获取token
root@k8s-master-1:~/dashboard# kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d
eyJhbGciOiJSUzI1NiIsImtpZCI6IlFfTW82UWJ0QUViMUZZWjhUSW5objV3WTdaLUVtZE1rMHE0eVpRc1kxeUkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGVkMDliNi0yYWJjLTQ1YTAtYTYxYy1kMzBkNzUyMzI4ZmEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.GBWXmR2uGE8-S3GRRttyjNS0q181kGr3iUN8AYEoTzHn6Oeo3p0ecRHxAEhqmqhz6dfNCEG3-SLQsajroKDdUM92w0uI6zn5lrDjw66Wcx5dOD5-fBEAZdCdmoxi6AiR2TSU2BpVrJScRAYsBZUTQLApLEAqnXO6XvcOAMDeVFZIjARj6CAABHIHVDXwbdkq9yPZbAXKgL0frIs8Bj42Yn8UnaJShk64_1MXgY3tq7uoxuA_DTi93RhvohUjzmhAAZzd7tOjyahabWiyQSoK6mrFqkufLaparfIjS4tW7x_KRTrCC_SBW4P2WGtQ0GNlw3bc5oC2nWDBFJCrCeJ8_Q
访问dashboard
获取端口
kubectl get svc -n kubernetes-dashboard
端口为30088
浏览器访问:https://IP:PORT,
注意是https
页面中输入上一步获取到的token即可
然后就能使用dashboard控制创建的集群了