标签:下载 dockerd 根据 exec efault arc active err mamicode
k8s集群部署以四台机器做实验,一台部署节点,三台集群节点。在部署节点上通过ansible将关于k8s相关部署文件发送给集群节点进行部署。
四台主机:node、node1、node2、node3;
a) 部署节点:node;
b) master节点:node1;
c) etcd节点:node1、node2、node3;
d) 计算(node)节点:node1、node2、node3。
版本组件
kubernetes v1.9.7
etcd v3.3.4
docker 18.03.0-ce
calico/node:v3.0.6
calico/cni:v2.0.5
calico/kube-controllers:v2.0.4
centos 7.3+
[root@node opt]# ls
kubernetes.tar.gz rh
[root@node opt]# tar zxf kubernetes.tar.gz
[root@node opt]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.254.20 reg.yunwei.edu 192.168.16.95 node 192.168.16.96 node1 192.168.16.98 node2 192.168.16.99 node3 [root@node opt]# ssh-keygen [root@node opt]# ssh-copy-id node3 [root@node opt]# ssh-copy-id node2 [root@node opt]# ssh-copy-id node1 [root@node opt]# ssh-copy-id node
[root@node ~]# docker pull reg.yunwei.edu/learn/ansible:alpine3 [root@node ~]# docker images reg.yunwei.edu/learn/ansible alpine3 1acb4fd5df5b 17 months ago 129MB [root@node ~]# docker run -itd -v /etc/ansible:/etc/ansible -v /etc/kubernetes/:/etc/kubernetes/ -v /root/.kube:/root/.kube -v /usr/local/bin/:/usr/local/bin/ 1acb4fd5df5b /bin/sh 2a08c5849991a507219c5916b2fd2b26dc9e2befddcf2793bb35dacec1fe1da8 [root@node ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2a08c5849991 1acb4fd5df5b "/bin/sh" 30 seconds ago Up 29 seconds stupefied_easley [root@node ~]# docker exec -it 2a08c5849991 /bin/sh / #
/etc/ansible/目录已映射至容器/etc/ansible/下,因此将所有k8s的编排文件移动至/etc/ansible目录即可
[root@node ~]# cd /opt/ [root@node opt]# ls kubernetes kubernetes.tar.gz rh [root@node kubernetes]# ls bash image.tar.gz scope.yaml ca.tar.gz k8s197.tar.gz sock-shop harbor-offline-installer-v1.4.0.tgz kube-yunwei-197.tar.gz [root@node kubernetes]# tar zxf kube-yunwei-197.tar.gz [root@node kubernetes]# ls bash kube-yunwei-197 ca.tar.gz kube-yunwei-197.tar.gz harbor-offline-installer-v1.4.0.tgz scope.yaml image.tar.gz sock-shop k8s197.tar.gz [root@node kube-yunwei-197]# mv ./* /etc/ansible/ 进入容器查看 [root@node ~]# docker exec -it 2a08c5849991 /bin/sh / # cd /etc/ansible/ /etc/ansible # ls 01.prepare.yml 06.network.yml manifests 02.etcd.yml 99.clean.yml roles 03.docker.yml ansible.cfg tools 04.kube-master.yml bin 05.kube-node.yml example 将k8s的二级制文件移动到/bin下 [root@node kubernetes]# rm -rf kube-yunwei-197 [root@node kubernetes]# tar zxf k8s197.tar.gz [root@node kubernetes]# ls bash harbor-offline-installer-v1.4.0.tgz kube-yunwei-197.tar.gz bin image.tar.gz scope.yaml ca.tar.gz k8s197.tar.gz [root@node kubernetes]# cd bin [root@node bin]# ls bridge docker-containerd-shim kube-apiserver calicoctl dockerd kube-controller-manager cfssl docker-init kubectl cfssl-certinfo docker-proxy kubelet cfssljson docker-runc kube-proxy docker etcd kube-scheduler docker-compose etcdctl loopback docker-containerd flannel portmap docker-containerd-ctr host-local [root@node bin]# mv * /etc/ansible/bin/ [root@node bin]# ls [root@node bin]# cd .. [root@node kubernetes]# rm -rf bin/
root@node kubernetes]# cd /etc/ansible/ [root@node ansible]# ls 01.prepare.yml 04.kube-master.yml 99.clean.yml example tools 02.etcd.yml 05.kube-node.yml ansible.cfg manifests 03.docker.yml 06.network.yml bin roles [root@node ansible]# cd example/ [root@node example]# ls hosts.s-master.example [root@node example]# cp hosts.s-master.example ../hosts #将示例文件复制到上层目录的hosts文件再进行编辑配置 [root@node example]# cd .. [root@node ansible]# ls 01.prepare.yml 04.kube-master.yml 99.clean.yml example roles 02.etcd.yml 05.kube-node.yml ansible.cfg hosts tools 03.docker.yml 06.network.yml bin manifests [root@node ansible]# vim hosts [root@node ansible]# vim hosts # 部署节点:运行ansible 脚本的节点 [deploy] 192.168.16.95 192.168.16.98 NODE_NAME=etcd2 NODE_IP="192.168.16.98" 192.168.16.99 NODE_NAME=etcd3 NODE_IP="192.168.16.99" [kube-master] 192.168.16.96 NODE_IP="192.168.16.96" 192.168.16.99 NODE_IP="192.168.16.99" [all:vars] # ---------集群主要参数--------------- #集群部署模式:allinone, single-master, multi-master DEPLOY_MODE=single-master #集群 MASTER IP MASTER_IP="192.168.16.96" #集群 APISERVER KUBE_APISERVER="https://192.168.16.96:6443" #TLS Bootstrapping 使用的 Token,使用 head -c 16 /dev/urandom | od -An -t x | tr -d ‘ ‘ 生成 BOOTSTRAP_TOKEN="d18f94b5fa585c7123f56803d925d2e7" # 集群网络插件,目前支持calico和flannel CLUSTER_NETWORK="calico" #使用三层网络calico,可跨网段 CALICO_IPV4POOL_IPIP="always" IP_AUTODETECTION_METHOD="can-reach=223.5.5.5" FLANNEL_BACKEND="vxlan" SERVICE_CIDR="10.68.0.0/16" # POD 网段 (Cluster CIDR),部署前路由不可达,**部署后**路由可达 CLUSTER_CIDR="172.20.0.0/16" # 服务端口范围 (NodePort Range) NODE_PORT_RANGE="20000-40000" # kubernetes 服务 IP (预分配,一般是 SERVICE_CIDR 中第一个IP) CLUSTER_KUBERNETES_SVC_IP="10.68.0.1" # 集群 DNS 服务 IP (从 SERVICE_CIDR 中预分配) CLUSTER_DNS_SVC_IP="10.68.0.2" # 集群 DNS 域名 CLUSTER_DNS_DOMAIN="cluster.local." # etcd 集群间通信的IP和端口, **根据实际 etcd 集群成员设置** ETCD_NODES="etcd1=https://192.168.16.96:2380,etcd2=https://192.168.16.98: 2380,etcd3=https://192.168.16.99:2380" # etcd 集群服务地址列表, **根据实际 etcd 集群成员设置** ETCD_ENDPOINTS="https://192.168.16.96:2379,https://192.168.16.98:2379,htt ps://192.168.16.99:2379" # 集群basic auth 使用的用户名和密码 BASIC_AUTH_USER="admin" BASIC_AUTH_PASS="admin" # ---------附加参数-------------------- #默认二进制文件目录 bin_dir="/usr/local/bin" #证书目录 ca_dir="/etc/kubernetes/ssl" #部署目录,即 ansible 工作目录 base_dir="/etc/ansible" 在容器中查看修改后的hosts文件 /etc/ansible # ls 01.prepare.yml 06.network.yml hosts 02.etcd.yml 99.clean.yml manifests 03.docker.yml ansible.cfg roles 04.kube-master.yml bin tools 05.kube-node.yml example /etc/ansible # cat hosts .....
/etc/ansible # ansible all -m ping 192.168.16.99 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added ‘192.168.16.99‘ (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", "unreachable": true } 192.168.16.98 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added ‘192.168.16.98‘ (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", "unreachable": true } 192.168.16.96 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added ‘192.168.16.96‘ (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", "unreachable": true } 192.168.16.95 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added ‘192.168.16.95‘ (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", "unreachable": true }
需要在容器内生成秘钥,秘钥相关文件存放在/root/.ssh目录
/etc/ansible # ssh-keygen 回车 回车 回车 发送密钥匙要注意,因为容器并没有做域名解析,因此直接将秘钥发送给主机ip /etc/ansible # ssh-copy-id 192.168.16.95 /etc/ansible # ssh-copy-id 192.168.16.96 /etc/ansible # ssh-copy-id 192.168.16.98 /etc/ansible # ssh-copy-id 192.168.16.99 秘钥发送完成后就能ping通了 /etc/ansible # ansible all -m ping 192.168.16.99 | SUCCESS => { "changed": false, "ping": "pong" } 192.168.16.96 | SUCCESS => { "changed": false, "ping": "pong" } 192.168.16.98 | SUCCESS => { "changed": false, "ping": "pong" } 192.168.16.95 | SUCCESS => { "changed": false, "ping": "pong" }
/etc/ansible # cd /etc/ansible/ /etc/ansible # ls 01.prepare.yml 06.network.yml hosts 02.etcd.yml 99.clean.yml manifests 03.docker.yml ansible.cfg roles 04.kube-master.yml bin tools 05.kube-node.yml example
第一步:准备环境
/etc/ansible # ansible-playbook 01.prepare.yml
第二步:在三台节点部署etcd服务
/etc/ansible # ansible-playbook 02.etcd.yml
第三步:在三台节点上安装docker
先清理干净以前的docker环境
[root@node1 ~]# ls anaconda-ks.cfg apache2 doc_file docker test [root@node1 ~]# cd doc doc_file/ docker/ [root@node1 ~]# cd docker/ [root@node1 docker]# ls ca.crt docker-app.tar.gz docker.sh remove.sh [root@node1 docker]# sh remove.sh [root@node2 ~]# cd docker/ [root@node2 docker]# sh remove.sh Removed symlink /etc/systemd/system/multi-user.target.wants/docker.service. [root@node2 docker]# docker images -bash: /usr/local/bin/docker: No such file or directory [root@node3 ~]# cd docker/ [root@node3 docker]# sh remove.sh Removed symlink /etc/systemd/system/multi-user.target.wants/docker.service. [root@node3 docker]# docker ps -bash: /usr/local/bin/docker: No such file or directory
安装docker
/etc/ansible # ansible-playbook 03.docker.yml
docker部署完成
/etc/ansible # ansible all -m shell -a ‘docker ps‘ 192.168.16.96 | SUCCESS | rc=0 >> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 192.168.16.99 | SUCCESS | rc=0 >> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 192.168.16.98 | SUCCESS | rc=0 >> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 192.168.16.95 | SUCCESS | rc=0 >> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2a08c5849991 1acb4fd5df5b "/bin/sh" About an hour ago Up About an hour stupefied_easley
第四步:部署kube-master节点
在部署kube-master之前要确保/root/.kube目录是映射完成的。
[root@node ansible]# cd [root@node ~]# ls -a . apache2 .bashrc doc_file .ssh .. .bash_history .cache docker .tcshrc anaconda-ks.cfg .bash_logout .config .kube test .ansible .bash_profile .cshrc .pki .viminfo [root@node ~]# cd .kube/ [root@node .kube]# ls config /etc/ansible # cd /root ~ # ls -a . .ansible .cache .ssh .. .ash_history .kube ~ # cd .kube/ ~/.kube # ls config
部署master
/etc/ansible # ansible-playbook 04.kube-master.yml
第五步:部署node节点
/etc/ansible # ansible-playbook 05.kube-node.yml
将镜像文件发送给各节点,在各节点解压文件
[root@node opt]# cd kubernetes/ [root@node kubernetes]# ls bash image.tar.gz scope.yaml ca.tar.gz k8s197.tar.gz sock-shop harbor-offline-installer-v1.4.0.tgz kube-yunwei-197.tar.gz [root@node kubernetes]# scp image.tar.gz node1:/root [root@node kubernetes]# scp image.tar.gz node2:/root [root@node kubernetes]# scp image.tar.gz node3:/root [root@node1 ~]# ls anaconda-ks.cfg apache2 doc_file docker image.tar.gz test [root@node1 ~]# tar zxf image.tar.gz [root@node1 ~]# ls anaconda-ks.cfg apache2 doc_file docker image image.tar.gz test [root@node1 ~]# cd image/ [root@node1 image]# ls bash-completion-2.1-6.el7.noarch.rpm calico coredns-1.0.6.tar.gz grafana-v4.4.3.tar heapster-v1.5.1.tar influxdb-v1.3.3.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz pause-amd64-3.1.tar [root@node2 ~]# ls anaconda-ks.cfg apache2 doc_file docker image.tar.gz test [root@node2 ~]# tar zxf image.tar.gz [root@node2 ~]# ls anaconda-ks.cfg apache2 doc_file docker image image.tar.gz test [root@node2 ~]# cd image/ [root@node2 image]# ls bash-completion-2.1-6.el7.noarch.rpm calico coredns-1.0.6.tar.gz grafana-v4.4.3.tar heapster-v1.5.1.tar influxdb-v1.3.3.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz pause-amd64-3.1.tar [root@node3 ~]# ls anaconda-ks.cfg apache2 doc_file docker image.tar.gz test [root@node3 ~]# tar zxf image.tar.gz [root@node3 ~]# cd image/ [root@node3 image]# ls bash-completion-2.1-6.el7.noarch.rpm calico coredns-1.0.6.tar.gz grafana-v4.4.3.tar heapster-v1.5.1.tar influxdb-v1.3.3.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz pause-amd64-3.1.tar
将所有的镜像导入到各节点的容器中,包括calico目录包含的镜像。镜像导入只能一个一个到,不能一次性导入,因此用脚本实现
[root@node1 image]# mv coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar calico/ [root@node1 image]# cd calico/ [root@node1 calico]# ls bash-completion-2.1-6.el7.noarch.rpm calico-kube-controllers-v2.0.4.tar coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz calico-cni-v2.0.5.tar calico-node-v3.0.6.tar grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar [root@node1 calico]# for im in `ls`;do docker load -i $im;done [root@node1 ~]# cd image/ [root@node1 image]# ls bash-completion-2.1-6.el7.noarch.rpm coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz calico grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar [root@node1 image]# coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar calico/ [root@node1 image]# cd calico/ [root@node1 calico]# ls calico-kube-controllers-v2.0.4.tar coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz calico-cni-v2.0.5.tar calico-node-v3.0.6.tar grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar [root@node1 calico]# for im in `ls`;do docker load -i $im;done [root@node3 ~]# cd image/ [root@node3 image]# ls bash-completion-2.1-6.el7.noarch.rpm calico coredns-1.0.6.tar.gz grafana-v4.4.3.tar heapster-v1.5.1.tar influxdb-v1.3.3.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz pause-amd64-3.1.tar [root@node3 image]# coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar calico/ [root@node3 image]# cd calico/ [root@node3 calico]# ls calico-kube-controllers-v2.0.4.tar coredns-1.0.6.tar.gz heapster-v1.5.1.tar kubernetes-dashboard-amd64-v1.8.3.tar.gz calico-cni-v2.0.5.tar calico-node-v3.0.6.tar grafana-v4.4.3.tar influxdb-v1.3.3.tar pause-amd64-3.1.tar [root@node3 calico]# for im in `ls`;do docker load -i $im;done
第六步:部署网络
/etc/ansible # ansible-playbook 06.network.yml
部署dns,实现容器域名解析
/etc/ansible # ls 01.prepare.yml 05.kube-node.yml example 02.etcd.yml 06.network.yml hosts 03.docker.retry 99.clean.yml manifests 03.docker.yml ansible.cfg roles 04.kube-master.yml bin tools /etc/ansible # cd manifests/ /etc/ansible/manifests # ls coredns dashboard efk heapster ingress kubedns /etc/ansible/manifests # cd coredns/ /etc/ansible/manifests/coredns # ls coredns.yaml error: flag needs an argument: ‘f‘ in -f /etc/ansible/manifests/coredns # kubectl create -f . /etc/ansible/manifests/coredns # cd .. /etc/ansible/manifests # cd dashboard/ /etc/ansible/manifests/dashboard # ls 1.6.3 ui-admin-rbac.yaml admin-user-sa-rbac.yaml ui-read-rbac.yaml kubernetes-dashboard.yaml /etc/ansible/manifests/dashboard # kubectl create -f . /etc/ansible/manifests/dashboard #cd .. /etc/ansible/manifests # ls coredns dashboard efk heapster ingress kubedns /etc/ansible/manifests # cd heapster/ /etc/ansible/manifests/heapster # ls grafana.yaml influxdb-v1.1.1 influxdb.yaml heapster.yaml influxdb-with-pv /etc/ansible/manifests/heapster # kubectl create -f ./etc/ansible # ls 01.prepare.yml 05.kube-node.yml example 02.etcd.yml 06.network.yml hosts 03.docker.retry 99.clean.yml manifests 03.docker.yml ansible.cfg roles 04.kube-master.yml bin tools /etc/ansible # cd manifests/ /etc/ansible/manifests # ls coredns dashboard efk heapster ingress kubedns /etc/ansible/manifests # cd coredns/ /etc/ansible/manifests/coredns # ls coredns.yaml error: flag needs an argument: ‘f‘ in -f /etc/ansible/manifests/coredns # kubectl create -f . /etc/ansible/manifests/coredns # cd .. /etc/ansible/manifests # cd dashboard/ /etc/ansible/manifests/dashboard # ls 1.6.3 ui-admin-rbac.yaml admin-user-sa-rbac.yaml ui-read-rbac.yaml kubernetes-dashboard.yaml /etc/ansible/manifests/dashboard # kubectl create -f . /etc/ansible/manifests/dashboard #cd .. /etc/ansible/manifests # ls coredns dashboard efk heapster ingress kubedns /etc/ansible/manifests # cd heapster/ /etc/ansible/manifests/heapster # ls grafana.yaml influxdb-v1.1.1 influxdb.yaml heapster.yaml influxdb-with-pv /etc/ansible/manifests/heapster # kubectl create -f .
10> 在部署节点使用kubernetes自己的命令查看kubernetes是否部署完成
查看节点 [root@node ~]# kubectl get node NAME STATUS ROLES AGE VERSION 192.168.16.96 Ready,SchedulingDisabled <none> 48m v1.9.7 192.168.16.98 Ready <none> 45m v1.9.7 192.168.16.99 Ready <none> 45m v1.9.7 命名空间 [root@node ~]# kubectl get ns NAME STATUS AGE default Active 50m kube-public Active 50m kube-system Active 50m pod [root@node ~]# kubectl get pod No resources found. #没有指定命名空间 指定命名空间,查看pod [root@node ~]# kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-754c88ccc8-rbqlm 1/1 Running 0 23m calico-node-8zxc4 2/2 Running 1 23m calico-node-b2j8n 2/2 Running 0 23m calico-node-zw8gg 2/2 Running 0 23m coredns-6ff7588dc6-cpmxv 1/1 Running 0 17m coredns-6ff7588dc6-pmqsn 1/1 Running 0 17m heapster-7f8bf9bc46-4jn5n 1/1 Running 0 5m kubernetes-dashboard-545b66db97-rlr88 1/1 Running 0 10m monitoring-grafana-64747d765f-brbwj 1/1 Running 0 5m monitoring-influxdb-565ff5f9b6-vrlcq 1/1 Running 0 5m 查看详细信息,加 -o wide [root@node ~]# kubectl get pod -n kube-system -o wide NAME READY STATUS RESTARTS AGE IP NODE calico-kube-controllers-754c88ccc8-rbqlm 1/1 Running 0 25m 192.168.16.99 192.168.16.99 calico-node-8zxc4 2/2 Running 1 25m 192.168.16.99 192.168.16.99 calico-node-b2j8n 2/2 Running 0 25m 192.168.16.98 192.168.16.98 calico-node-zw8gg 2/2 Running 0 25m 192.168.16.96 192.168.16.96 coredns-6ff7588dc6-cpmxv 1/1 Running 0 18m 172.20.104.1 192.168.16.98 coredns-6ff7588dc6-pmqsn 1/1 Running 0 18m 172.20.135.1 192.168.16.99 heapster-7f8bf9bc46-4jn5n 1/1 Running 0 6m 172.20.104.3 192.168.16.98 kubernetes-dashboard-545b66db97-rlr88 1/1 Running 0 11m 172.20.104.2 192.168.16.98 monitoring-grafana-64747d765f-brbwj 1/1 Running 0 6m 172.20.135.2 192.168.16.99 monitoring-influxdb-565ff5f9b6-vrlcq 1/1 Running 0 6m 172.20.135.3 192.168.16.99
11> 验证集群是否正常工作
在集群节点中选择一个一个节点来ping pod的ip,在不同的节点上ping ip,如在node2上ping node3 的ip
[root@node2 calico]# ping 172.20.135.3 PING 172.20.135.3 (172.20.135.3) 56(84) bytes of data. 64 bytes from 172.20.135.3: icmp_seq=1 ttl=63 time=0.495 ms 64 bytes from 172.20.135.3: icmp_seq=2 ttl=63 time=0.423 ms 64 bytes from 172.20.135.3: icmp_seq=3 ttl=63 time=0.744 ms
12> 集群部署完成后打开dashboard界面
先从集群信息获取地址
[root@node ~]# kubectl cluster-info Kubernetes master is running at https://192.168.16.96:6443 CoreDNS is running at https://192.168.16.96:6443/api/v1/namespaces/kube-system/services/coredns:dns/proxy kubernetes-dashboard is running at https://192.168.16.96:6443/api/v1/namespaces/kube-system /services/https:kubernetes-dashboard:/proxy monitoring-grafana is running at https://192.168.16.96:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
复制地址至浏览器,输入用户密码为admin进行访问。
获取令牌
[root@node ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret|grep admin-user|awk ‘{print $1}‘) .... token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXJ0cGJnIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1NTk5Nzk4Mi1hOTc3LTExZTktYmZhYy0wMDUwNTYyZDFjY2EiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.Y8I1CePpxpjvjtVC4QrJdJvjN0oclLx_2sNyzr7OxXh5rWguRs2BjeRBybTgm2_bvtnkKlGcm5XMIdpUQPNq__VY4oBCEChOYsuZnzJWGGAZXi0GQWtG83ximTAnMhia0LJ9iOtyK7bNr8F5FWZEm0Z5DBXLhnx94B-8Ljsr_MuOxkCHx1cuPQScWFbOUy8Pp9xVaUofjN9zH2CnzKumAnkRUJOHA1HtsdemU2m6Ih-PTLMZZyq7j7qTRzOuDw3K-RRvzwlNhjPe4oQZglJPKCFw-pkzpOJKfBKwwjKzUaioiUeVd9Cl23ETG69BT_KM_oEKCf9gs1KFfNAb7ixCsg
然后复制该令牌进行登录。
标签:下载 dockerd 根据 exec efault arc active err mamicode
原文地址:https://www.cnblogs.com/ajunyu/p/11217777.html