网站如何推广引流,wordpress用什么服务器配置,网站建设维护管理,做网站没流量在使用k8s之前如果不太熟悉k8s的可以先看这个文章#xff1a;
kubernetes--技术文档--基本概念--《10分钟快速了解》_一单成的博客-CSDN博客
三节点相同安装操作#xff1a; 1、设置hosts解析
根据角色在三个服务器中运行#xff0c;设置自己的hostname。
标识#xf…在使用k8s之前如果不太熟悉k8s的可以先看这个文章
kubernetes--技术文档--基本概念--《10分钟快速了解》_一单成的博客-CSDN博客
三节点相同安装操作 1、设置hosts解析
根据角色在三个服务器中运行设置自己的hostname。
标识hostname是用于标识Linux系统的名称。通过修改hostname你可以更改系统在局域网或互联网中的标识使其更符合你的需求。可读性有些长而复杂的Linux系统名称可能难以记忆和读取。通过修改hostname你可以使其更简短、易于记忆和读取。管理在多用户环境中为了方便管理和区分不同的Linux系统修改hostname可以帮助你更容易地识别和管理各个系统。
master节点
hostnamectl set-hostname k8s-master #设置master节点的hostname
slave-1节点
hostnamectl set-hostname k8s-slave1 #设置slave1节点的hostname
slave-2节点
hostnamectl set-hostname k8s-slave2 #设置slave2节点的hostname
在修改了名字后 刷新可看到 这个时候已经有自己的名字了。
在三个服务器上添加hosts解析--配置本地域名
cat /etc/hostsEOF
masterip k8s-master
slave1ip k8s-slave1
slave2ip k8s-slave2
EOF 2、 调整系统配置
1、设置安全组开放端口 注意如果节点间无安全组限制内网机器间可以任意访问可以忽略否则至少保证如下端口可通 k8s-master节点TCP6443237923806008060081UDP协议端口全部打开 k8s-slave节点UDP协议端口全部打开
2、设置iptables
注意首先iptables不是网卡而是Linux内核的一个模块用于管理对网络设备网卡的访问。iptables可以配置操作系统的路由表实现路由过滤、端口转发、NAT等主要用于管理IPv4数据包的过滤和地址转换。在IPv6中相应的工具是ip6tables用于管理IPv6数据包的过滤和地址转换。
在搭建 Kubernetes 集群时设置iptables主要有两个原因实现集群内部服务发现和外部访问网络代理。
实现集群内部服务发现Kubernetes 使用iptables来设置网络转发规则将请求转发到后端的 Pod。当一个请求进入 Kubernetes 集群时iptables 会根据请求的目标 IP 和端口将请求转发到对应的服务 Pod。这使得集群内部的服务的请求能够被正确地路由和处理。外部访问网络代理Kubernetes 使用iptables来设置外部流量进入集群的代理规则。当一个请求从外部进入 Kubernetes 集群时iptables 会将请求转发到合适的网关或负载均衡器从而实现外部对内部服务的访问。
需要注意的是Kubernetes 还提供了另一个流量转发工具 IPVS IP Virtual Server可以用于实现高性能的负载均衡。你可以根据实际场景和需求选择使用 iptables 还是 IPVS。
iptables -P FORWARD ACCEPT
代码说明
iptables -P FORWARD ACCEPT 是一个iptables命令用于设置Linux系统中的iptables防火墙的转发规则。
具体来说-P 选项指定了默认策略而 FORWARD 是iptables规则链的名字用于处理经过的流量。在这个例子中ACCEPT 是默认策略表示所有经过 FORWARD 链的流量都将被接受即允许通过。
换句话说这个命令设置了所有经过iptables防火墙的流量在 FORWARD 链中的默认行为是允许通过除非有特定的规则对特定流量进行了阻止。 3、关闭swap
在搭建Kubernetes集群时建议关闭swap原因如下
性能下降当内存不足时Linux会将一部分内存存储到磁盘交换文件中从而导致性能下降并可能导致应用程序崩溃。而在运行Kubernetes时内存压力可能很高因此关闭swap可以避免这种情况。容器无法正常工作在执行大型容器操作时如果系统启用了swap可能会导致一些容器被停止或无法正常工作。为避免这种情况建议在Kubernetes节点上禁用swap。
总之为了提高Kubernetes集群的整体性能和稳定性建议在搭建集群时关闭swap
swapoff -a
# 防止开机自动挂载 swap 分区
sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab 代码解释
这段代码是用于关闭 Linux 系统中的 swap 分区的命令。
让我们逐行解释一下
swapoff -a该命令会关闭所有已经挂载的 swap 分区。sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab这行命令使用了 sed 工具来修改 /etc/fstab 文件。-i 选项表示直接修改输入文件而不是输出到标准输出。/ swap / 是 sed 的匹配模式表示只匹配包含 swap 的行。s/^\(.*\)$/#\1/g 是 sed 的替换操作表示将每行的内容替换为在原来的内容前面加上 #。换句话说这行命令将所有包含 swap 的行在每行的开头加上 #也就是注释掉这些行。
总的来说这段代码的目的是关闭 swap 分区并防止其在系统重新启动时自动挂载。
4、关闭selinux和防火墙
在搭建 Kubernetes 集群时建议关闭 SELinux 和防火墙原因如下
防火墙可能会阻止 Kubernetes 节点的网络通信Kubernetes 需要节点之间的网络通信来正常工作。如果防火墙阻止了这些通信可能会导致部署失败或集群节点之间无法通信的问题。SELinux 可能会与 Kubernetes 某些组件的访问控制策略冲突SELinux 是一个用于提供更高级别的访问控制和安全保护的 Linux 内核模块。然而在某些情况下为了方便和实用需要关闭 SELinux 以放松对系统资源的限制从而提高系统的灵活性和可用性。
总之为了确保 Kubernetes 集群的正常运行和简化部署过程建议在搭建集群时关闭 SELinux 和防火墙。但请注意这只适用于某些情况下具体应根据实际情况进行决策。
sed -ri s#(SELINUX).*#\1disabled# /etc/selinux/config
setenforce 0
systemctl disable firewalld systemctl stop firewalld
这段代码是用于关闭 SELinux 和防火墙的命令具体解释如下
sed -ri s#(SELINUX).*#\1disabled# /etc/selinux/config该命令使用 sed 工具对 /etc/selinux/config 文件进行修改。-ri 选项表示在读取文件的同时进行修改。s#(SELINUX).*#\1disabled# 是 sed 的替换命令它将文件中以 SELINUX 开头的行替换为 SELINUXdisabled。这样修改后SELinux 在下次重启后将被禁用。setenforce 0该命令会立即将 SELinux 设置为禁用状态而不需要重启系统。systemctl disable firewalld systemctl stop firewalld这两个命令是使用 systemctl 工具来禁用和停止 firewalld 服务。 表示前后两个命令之间是逻辑关系只有前一个命令成功执行后后一个命令才会执行。
综上所述这段代码的目的是立即禁用 SELinux禁用并停止防火墙服务从而确保 Kubernetes 集群的正常运行。 5、修改内核参数
在搭建Kubernetes集群时修改内核参数可以优化集群的性能和稳定性。以下是一些常见的内核参数调整的原因
调整网络性能面对高并发场景修改内核参数可以优化网络性能。例如开启TCP拥塞控制算法可以提高网络的吞吐量和稳定性。避免TIME_WAIT连接过多在短连接并发量较高的场景中可能导致TIME_WAIT状态的连接数量累积到超过一定量从而导致无法新建连接。开启TIME_WAIT复用可以解决这个问题。提高文件系统的性能修改文件系统参数可以优化存储性能例如增加缓冲区缓存大小、调整延迟分配机制等。调整进程调度修改进程调度的参数可以优化集群中不同任务的调度和资源分配从而提高整体的性能和稳定性。避免内存泄露和死锁问题调整内核参数可以避免内存泄露和死锁问题提高系统的稳定性和可靠性。
总之修改内核参数是为了优化Kubernetes集群的性能和稳定性。具体的参数调整应该根据实际情况进行建议在搭建集群前进行充分的测试和验证。
cat EOF /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables 1
net.bridge.bridge-nf-call-iptables 1
net.ipv4.ip_forward1
vm.max_map_count262144
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf 代码说明
这段代码执行了以下操作
使用了 cat 命令创建一个名为 k8s.conf 的新文件该文件位于 /etc/sysctl.d/ 目录下。EOF 是一个 Here 文档 的标记它告诉 cat 命令从该标记开始读取输入直到遇到另一个标记 EOF 为止。在 Here 文档 中定义了一些内核参数及其值。这些参数用于配置网络、防火墙、最大映射计数等方面的系统行为。输出结束后再次出现了 EOF 标记表示 Here 文档 的结束。最后使用 echo 命令将这些参数写入到 /etc/sysctl.d/k8s.conf 文件中。
这些参数的修改和写入文件的目的是为了在系统运行时启用特定的内核行为以适应 Kubernetes 集群的需求。例如net.bridge.bridge-nf-call-ip6tables 1 和 net.bridge.bridge-nf-call-iptables 1 参数允许通过 br_netfilter 模块启用 IPv4 和 IPv6 的网络过滤。而 net.ipv4.ip_forward1 则启用了 IP 数据包转发。最后vm.max_map_count262144 参数增加了最大映射计数这对于 Kubernetes 中的大对象例如大型镜像有所帮助。
最后使用 modprobe 命令加载了 br_netfilter 模块并使用 sysctl 命令将 /etc/sysctl.d/k8s.conf 文件中的参数应用到系统中。这样修改后的内核参数就会生效以满足 Kubernetes 集群的需求。
6、设置yum源
在搭建Kubernetes集群时需要设置yum源是为了确保可以从指定的源获取所需的软件包和组件。Kubernetes依赖于许多软件包和组件包括Docker、Kubernetes组件、网络插件等。通过设置yum源你可以指定从可靠的源获取这些软件包和组件以确保它们的完整性和一致性。
此外设置yum源还可以提高安装和管理的效率。通过使用yum源你可以一次性安装多个相关的软件包而无需单独下载和安装每个软件包。这可以减少安装时间和操作步骤提高搭建集群的效率。
总之设置yum源是为了确保Kubernetes集群的稳定性和效率提供可靠的软件包和组件来源并简化安装和管理过程。
设置centOS版本源
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
代码解释 这个命令使用了 curl 工具来下载一个文件并将其保存到 /etc/yum.repos.d/ 目录下。具体来说这个命令的含义如下
-o 参数指定了输出文件的名字这里将其命名为 Centos-7.repo。http://mirrors.aliyun.com/repo/Centos-7.repo 是要下载的文件的URL地址。
因此这个命令将从指定的URL下载一个名为 Centos-7.repo 的文件并将其保存到 /etc/yum.repos.d/ 目录下。这个文件通常是一个yum源的配置文件用于指定从哪个源获取CentOS 7的软件包。
注意
不少同志使用的时候是直接在运行商哪里进行购买的自带了CentOS比如我。
1、可以忽略这个代码不需要进行运行
2、切换到自己的版本源即可
如果你的系统不是CentOS 7而是其他版本的Linux你需要找到适合你的系统的yum源配置文件。
通常情况下不同版本的Linux系统使用的yum源配置文件是不同的。因此你需要找到适合你系统版本的yum源配置文件。
你可以通过以下几种方式来找到适合你系统的yum源配置文件
搜索互联网在搜索引擎中输入你的系统版本和yum源配置文件的关键词可以尝试找到适合你系统的yum源配置文件。从官方网站下载一些Linux发行版的官方网站会提供适合其系统的yum源配置文件。你可以从官方网站下载相应的文件。从镜像站点下载有些Linux发行版提供了镜像站点你可以从镜像站点下载适合你系统的yum源配置文件。
下载到适合你系统的yum源配置文件后你可以使用类似于上述示例中的命令将其保存到 /etc/yum.repos.d/ 目录下。然后你可以使用yum命令从指定的源安装和更新软件包。
请注意不同的系统可能需要不同的配置。因此在替换yum源配置文件之前请确保你理解该文件的内容并按照你的系统要求进行正确的配置。
安装Docker CE
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这个命令同样使用了 curl 工具它的作用是从指定的URL下载一个文件并将其保存到 /etc/yum.repos.d/ 目录下。具体来说这个命令的含义如下
-o 参数指定了输出文件的名字这里将其命名为 docker-ce.repo。http://mirrors.aliyuncom.net/docker-ce/linux/centos/docker-ce.repo 是要下载的文件的URL地址。
因此这个命令将从指定的URL下载一个名为 docker-ce.repo 的文件并将其保存到 /etc/yum.repos.d/ 目录下。这个文件是Docker CEDocker Community Edition的yum源配置文件用于指定从哪个源获取Docker CE的软件包。
请注意这个命令是针对CentOS系统的特定操作用于安装Docker CE。如果你使用的是其他Linux发行版可能需要下载对应的Docker CE的yum源配置文件并使用类似的方式进行安装。
配置Kubernetes的yum源
cat EOF /etc/yum.repos.d/kubernetes.repo
[kubernetes]
nameKubernetes
baseurlhttp://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled1
gpgcheck0
repo_gpgcheck0
gpgkeyhttp://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
这段代码是在Linux系统上配置Kubernetes的yum源。具体来说它的作用是
打开一个新的文件 /etc/yum.repos.d/kubernetes.repo这个文件是用来存储yum源的配置信息。在该文件中定义了一个名为[kubernetes]的yum源其中包含了以下信息 name: 这个yum源的名字是Kubernetes。baseurl: 这个yum源的URL地址是http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64。enabled: 这个yum源是启用的值为1。gpgcheck: 这个yum源会检查软件包的GPG签名值为0表示不检查。repo_gpgcheck: 这个yum源会检查源的GPG签名值为0表示不检查。gpgkey: 指定GPG密钥的URL地址这里提供了两个地址用于获取公钥和软件包公钥。最后EOF是一个结束标记表示上述配置信息已经结束。
通过这段代码我们就可以配置好Kubernetes的yum源从而使用yum命令从该源安装和更新Kubernetes相关的软件包。
清理yum缓存 yum clean all yum makecache
yum clean all 命令是用于清理yum缓存的。它会删除缓存目录中的所有文件以便yum可以重新获取这些文件。
yum makecache 命令则是用于生成yum缓存的。它会从yum源中下载软件包列表和元数据并将其存储在缓存目录中以便在后续的软件包安装和查询操作中可以更快地访问这些数据。
因此yum clean all yum makecache 这条命令的作用是先清理yum缓存然后再重新生成缓存以获取最新的软件包列表和元数据。这样可以加快软件包安装和查询的速度并减少对网络连接的访问。 3、安装docker
查看所有可用的版本
yum list docker-ce --showduplicates | sort -r 容器运行时环境还是使用大家熟知的Docker只是在k8s v1.24以后需要额外安装cri-dockerd, k8s才能够正常识别到Docker。这里也可以使用其它容器运行时工具比如containerd, CRI-O等可以根据个人喜好使用只是截至目前Docker在国内占的比重依然可以说是一枝独秀。
安装最新的docker
yum install docker-ce
配置docker加速
创建docker文件夹
mkdir -p /etc/docker
编辑docker配置文件
vi /etc/docker/daemon.json
配置文件中内容
{insecure-registries: [ masterip!!!:5000 ], registry-mirrors : [https://8xpk5wnt.mirror.aliyuncs.com]
}
启动docker
systemctl enable docker systemctl start docker
4、部署kubernetes
文章链接 1、安装 kubeadm, kubelet 和 kubectl
yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2 --disableexcludeskubernetes
版本更换1.20.9 -使用公网搭建集群 sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludeskubernetes
查看kubeadm 版本
kubeadm version
设置kubelet开机启动
systemctl enable kubelet
2、初始化配置文件只在master节点中执行初始化配置文件
kubeadm config print init-defaults kubeadm.yaml
kubeadm config print init-defaults kubeadm.yaml 这个代码是用来生成一个默认的 kubeadm.yaml 配置文件的命令。
让我们来详细解释一下这个命令的含义
kubeadm: 这是 Kubernetes 的一个命令行工具用于管理 Kubernetes 集群的初始化和维护。config: 这是 kubeadm 工具的一个子命令用于管理 Kubernetes 集群的配置。print init-defaults: 这是 config 子命令的一个选项用于打印出 Kubernetes 集群初始化的默认配置。 kubeadm.yaml: 这是一个重定向操作它将 kubeadm config print init-defaults 命令的输出写入到一个名为 kubeadm.yaml 的文件中。
因此这个命令的含义是使用 kubeadm 工具的 config 子命令的 print init-defaults 选项来获取 Kubernetes 集群初始化的默认配置并将这个配置写入到一个名为 kubeadm.yaml 的文件中。这个文件可以用于后续的 Kubernetes 集群初始化操作。
更改配置文件
vim kubeadm.yaml
需要修改的配置行
请修改为图中的信息
1、配置id地址 advertiseAddress: master的ip!! # apiserver地址因为单master所以配置master的节点内网IP 2、修改为阿里云的镜像 imageRepository: registry.aliyuncs.com/google_containers # 修改成阿里镜像源 3、配置网卡网络需要注意这个本来在文件中是没有的需要新添加 内网使用下面这个网段
podSubnet: 10.244.0.0/16
只在master执行
1、下载镜像
首先查看使用的镜像列表
kubeadm config images list --config kubeadm.yaml 得到如下列表
registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.0
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.0
registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.0
registry.aliyuncs.com/google_containers/kube-proxy:v1.16.0
registry.aliyuncs.com/google_containers/pause:3.1
registry.aliyuncs.com/google_containers/etcd:3.3.15-0
registry.aliyuncs.com/google_containers/coredns:1.6.2 下载镜像到本地
kubeadm config images pull --config kubeadm.yaml 注意
如果出现不可用的情况请使用如下方式来代替
1、还原kubeadm.yaml的imageRepository
...
imageRepository: k8s.gcr.io
...## 查看使用的镜像源
kubeadm config images list --config kubeadm.yaml
k8s.gcr.io/kube-apiserver:v1.16.0
k8s.gcr.io/kube-controller-manager:v1.16.0
k8s.gcr.io/kube-scheduler:v1.16.0
k8s.gcr.io/kube-proxy:v1.16.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.15-0
k8s.gcr.io/coredns:1.6.2 2、使用docker hub中的镜像源来下载注意上述列表中要加上处理器架构通常我们使用的虚拟机都是amd64
$ docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.16.0
$ docker pull mirrorgooglecontainers/etcd-amd64:3.3.15-0
...
$ docker tag mirrorgooglecontainers/etcd-amd64:3.3.15-0 k8s.gcr.io/etcd:3.3.15-0 2、初始化master节点
kubeadm init --config kubeadm.yaml
kubernetes--技术文档--安装kubernetes集群报错[kubelet-check] Initial timeout of 40s passed.(已经解决)_一单成的博客-CSDN博客
注意 可能出现报错为有一个组件无法正常启动。 如果成功会出现如下信息
Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run kubectl apply -f [podnetwork].yaml with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 内网ip:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:e277fcb92e605f89b24ee3a0f904519c6ffae56a5c5f0a4768737ae3de83eb79 保存数据 下面有用
kubeadm join 内网ip:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:e277fcb92e605f89b24ee3a0f904519c6ffae56a5c5f0a4768737ae3de83eb79 接下来按照上述提示信息操作配置 kubectl客户端认证 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
这个时候使用 kubectl get nodes 这个代码查看节点还是处于notReady状态因为还没有配置网络插件。
在slave中部署
1、添加slave节点到集群中在slave节点中部署
使用上面保存的指令在进行添加slave节点
kubeadm join ip:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:e277fcb92e605f89b24ee3a0f904519c6ffae56a5c5f0a4768737ae3de83eb79
在master中执行
安装flannel插件
wget https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
修改配置指定网卡名称大概在文件的和170行190行添加一行配置
$ vi kube-flannel.yml
... containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.11.0-amd64command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgr- --ifaceeth0 # 如果机器存在多网卡的话指定内网网卡的名称默认不指定的话会找第一块网resources:requests:cpu: 100m
...
安装flannel网络插件
# 先拉取镜像,此过程国内速度比较慢
$ docker pull quay.io/coreos/flannel:v0.11.0-amd64
# 执行flannel安装
$ kubectl create -f kube-flannel.yml 设置master节点是否可调度可选
默认部署成功后master节点无法调度业务pod如需设置master节点也可以参与pod的调度需执行
kubectl taint node k8s-master node-role.kubernetes.io/master:NoSchedule- 验收
操作节点 在master节点k8s-master执行
kubectl get nodes #观察集群节点是否全部Ready 创建测试nginx服务
kubectl run test-nginx --imagenginx:alpine 查看pod是否创建成功并访问pod ip测试是否可用
kubectl get po -o wide 访问子节点看是否能返回页面代码
curl 内网ip
部署可视化页面
下载
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml 修改配置文件
vi recommended.yaml
修改Service为NodePort类型
......
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443targetPort: 8443selector:k8s-app: kubernetes-dashboardtype: NodePort # 加上typeNodePort变成NodePort类型的服务 访问地址本例为30133端口
kubectl create -f recommended.yaml
结果
kubectl -n kubernetes-dashboard get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.105.62.124 none 8000/TCP 31m
kubernetes-dashboard NodePort 10.103.74.46 none 443:30133/TCP 31m 浏览器访问 https://62.234.133.177:30133其中62.234.133.177为master节点的外网ip地址chrome目前由于安全限制测试访问不了使用firefox可以进行访问。
建ServiceAccount进行访问
vi admin.conf kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: adminannotations:rbac.authorization.kubernetes.io/autoupdate: true
roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccountname: adminnamespace: kubernetes-dashboard---
apiVersion: v1
kind: ServiceAccount
metadata:name: adminnamespace: kubernetes-dashboard$ kubectl create -f admin.conf
$ kubectl -n kubernetes-dashboard get secret |grep admin-token
admin-token-fqdpf kubernetes.io/service-account-token 3 7m17s
# 使用该命令拿到token然后粘贴到
$ kubectl -n kubernetes-dashboard get secret admin-token-fqdpf -o jsonpath{.data.token}|base64 -d
eyJhbGciOiJSUzI1NiIsImtpZCI6Ik1rb2xHWHMwbWFPMjJaRzhleGRqaExnVi1BLVNRc2txaEhETmVpRzlDeDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbi1mcWRwZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjYyNWMxNjJlLTQ1ZG...