K8S篇之六 kubeadm安装1master+2node集群+calico+coredns+dashboard监控

一、初始化3台机器

规划如下:
控制节点1:192.168.10.201 master1
工作节点1: 192.168.10.211 node1
工作节点2:192.168.10.212 node2

1.1 IP、主机名、hosts文件、时间同步

1.1.1 控制节点1上的操作

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #控制节点1上固定ip地址
image
[root@localhost ~]# systemctl restart network #控制节点1上重启网络服务
[root@localhost ~]# hostnamectl set-hostname master1 && bash #控制节点1上修改主机名,立即生效
[root@master1 ~]# vim /etc/hosts #控制节点1上,写入控制节点1、工作节点1和2的ip-主机名的本地hosts解析文件

点击查看/etc/hosts代码
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.201 master1
192.168.10.211 node1
192.168.10.212 node2

[root@master1 ~]# ntpdate cn.pool.ntp.org #控制节点1上,同步网络时间
[root@master1 ~]# crontab -e #控制节点1上,写定时同步计划

点击查看代码
* 6 * * * /usr/sbin/ntpdate cn.pool.ntp.org 

[root@master1 ~]# systemctl restart crond.service #控制节点1上,重启crond服务

1.1.2 工作节点上的操作

image

image

1.2 关闭swap、firewalld、selinux、reboot

1.2.1 三台都执行关闭swap

[root@master1 ~]# free -g #控制节点1上查看内存
[root@master1 ~]# vim /etc/fstab #注释掉swap一行
image

[root@node1 ~]# vim /etc/fstab #工作节点1上,注释掉swap一行
[root@node2 ~]# vim /etc/fstab #工作节点2上,注释掉swap一行

1.2.2 三台都关闭friewalld、selinux

[root@master1 ~]# systemctl stop firewalld && systemctl disable firewalld #控制节点1上,停止、关闭防火墙
[root@master1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #关闭selinux
[root@master1 ~]# reboot #重启服务器

[root@node1 ~]# systemctl stop firewalld && systemctl disable firewalld #工作节点1上,停止、关闭防火墙
[root@node1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #关闭selinux
[root@node1 ~]# reboot #重启服务器

[root@node2 ~]# systemctl stop firewalld && systemctl disable firewalld #工作节点2上,停止、关闭防火墙
[root@node2 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #关闭selinux
[root@node2 ~]# reboot #重启服务器

1.2.3 全部验证

[root@master1 ~]# free -g
[root@master1 ~]# systemctl status firewalld
[root@master1 ~]# getenforce
image

依次在工作节点1、2上进行验证;

1.3 三台机器免密登录、内核参数修改

[root@master1 ~]# ssh-keygen #控制节点1上,生成密钥对
[root@master1 ~]# ssh-copy-id master1 #在本机上也添加上免密登录
[root@master1 ~]# ssh-copy-id node1 #把公钥复制到工作节点1上,工作节点1可以免密登录到控制节点1
[root@master1 ~]# ssh-copy-id node2 #把公钥复制到工作节点2上,工作节点2可以免密登录到控制节点1
image

[root@node1 ~]# ssh-keygen
[root@master1 ~]# ssh-copy-id master1
[root@master1 ~]# ssh-copy-id node1
[root@master1 ~]# ssh-copy-id node2

[root@node2 ~]# ssh-keygen
[root@node2 ~]# ssh-copy-id master1
[root@node2 ~]# ssh-copy-id node1
[root@node2 ~]# ssh-copy-id node2

验证免密登录如下:
[root@master1 ~]# ssh root@node1 #控制节点1上,直接登录node1,不输入密码登录成功
[root@master1 ~]# ssh root@node2 #控制节点1上,直接登录node2,不输入密码登录成功
image

[root@master1 ~]# lsmod | grep br_netfilter #控制节点1上,查看是否加载了br_netfilter模块
[root@master1 ~]# modprobe br_netfilter #加载模块
[root@master1 ~]# lsmod | grep br_netfilter
image

[root@node1 ~]# modprobe br_netfilter #工作节点1上,加载br模块
[root@node2 ~]# modprobe br_netfilter #工作节点2上,加载br模块
[root@master1 ~]# vim /etc/sysctl.d/k8s.conf #在控制节点1,/etc/sysctl.d/目录下,新建k8s.conf文件

点击查看k8s.conf文件代码
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

[root@master1 ~]# sysctl -p /etc/sysctl.d/k8s.conf #在控制节点1,指定从k8s.conf文件中加载内核参数,使其生效

image

[root@master1 ~]# scp /etc/sysctl.d/k8s.conf node1:/etc/sysctl.d/ #在控制节点1上,把k8s.conf文件,复制到工作节点1的/etc/sysctl.d/目录下
[root@master1 ~]# scp /etc/sysctl.d/k8s.conf node2:/etc/sysctl.d/ #在控制节点1上,把k8s.conf文件,复制到工作节点2的/etc/sysctl.d/目录下

[root@node1 ~]# sysctl -p /etc/sysctl.d/k8s.conf
[root@node2 ~]# sysctl -p /etc/sysctl.d/k8s.conf

1.4 base、docker、k8s的repo源

链接:https://pan.baidu.com/s/1s8q-4CFkrYgyuYljBfx8lg
提取码:1234
链接:https://pan.baidu.com/s/1irr4-3_DaNNEqvB6TxLsew?pwd=1234
提取码:1234
链接:https://pan.baidu.com/s/1nqK7q9j1ZeQ3m3HtZgjTxg?pwd=1234
提取码:1234

[root@master1 ~]# mkdir -p /opt/repo.bak/ #新建目录
[root@master1 ~]# mv /etc/yum.repos.d/* /opt/repo.bak/ #把本地的repo源移动到备份目录
[root@master1 ~]# cd /etc/yum.repos.d/ && ll #进入原repo目录,上传base、docker、k8s的repo源
image

[root@node1 ~]# mkdir -p /opt/repo.bak/ #工作节点1上新建repo备份目录
[root@node1 ~]# mv /etc/yum.repos.d/* /opt/repo.bak/
[root@node2 ~]# mkdir -p /opt/repo.bak/ #工作节点2上新建repo备份目录
[root@node2 ~]# mv /etc/yum.repos.d/* /opt/repo.bak/

[root@master1 yum.repos.d]# scp -r /etc/yum.repos.d/* node1:/etc/yum.repos.d/ #在控制节点1上,把3个repo文件,从master1机器上,复制到node1机器上
[root@master1 yum.repos.d]# scp -r /etc/yum.repos.d/* node2:/etc/yum.repos.d/ #在控制节点1上,把3个repo文件,从master1机器上,复制到node2机器上
image

1.5 ipvs开启、安装基础软件包

[root@master1 yum.repos.d]# cd /etc/sysconfig/modules/ && ll #进入modules目录
把ipvs.modules文件上传到该目录下:
链接:https://pan.baidu.com/s/1GHUMH57qY-zwVMMIbOSkwg?pwd=1234
提取码:1234
image

[root@master1 modules]# chmod +x ipvs.modules #控制节点1上,加权
[root@master1 modules]# lsmod | grep ip_vs #此时未加载ip_vs
[root@master1 modules]# bash ipvs.modules #执行脚本
[root@master1 modules]# lsmod | grep ip_vs #加载成功
image

[root@master1 modules]# scp ipvs.modules node1:/etc/sysconfig/modules/ #控制节点1上,复制文件到node1节点的相同目录
[root@master1 modules]# scp ipvs.modules node2:/etc/sysconfig/modules/ #控制节点1上,复制文件到node2节点的相同目录
image

[root@node1 yum.repos.d]# cd /etc/sysconfig/modules/ #节点1上,进入modules目录
[root@node1 modules]# bash ipvs.modules #执行脚本
[root@node2 yum.repos.d]# cd /etc/sysconfig/modules/ #节点2上,进入modules目录
[root@node2 modules]# bash ipvs.modules #执行脚本

[root@master1 modules]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet ipvsadm #控制节点1上,指向安装命令

[root@node1 modules]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet ipvsadm #工作节点1上,执行安装命令

[root@node2 modules]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet ipvsadm #工作节点2上,执行安装命令

二、安装docker服务和k8s软件包

2.1 三台机器上安装docker服务

[root@master1 modules]# yum -y install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io #控制节点1上安装docker-ce社区版本
[root@node1 modules]# yum -y install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io #工作节点1上安装
[root@node2 modules]# yum -y install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io #工作节点2上安装

image

[root@master1 modules]# systemctl start docker && systemctl enable docker
[root@node1 modules]# systemctl start docker && systemctl enable docker
[root@node2 modules]# systemctl start docker && systemctl enable docker

2.2 三台机器上配置docker的镜像加速器和驱动

[root@master1 modules]# vim /etc/docker/daemon.json #控制节点1上,新建daemon.json文件,写入如下内容

点击查看daemon.json代码
{
 "registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com", "https://rncxm540.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

[root@master1 modules]# cat /etc/docker/daemon.json #查看里面的文件内容
[root@master1 modules]# systemctl daemon-reload #重新加载
[root@master1 modules]# systemctl restart docker #重启docker服务
image

[root@master1 modules]# scp /etc/docker/daemon.json node1:/etc/docker/ #控制节点1上,把文件复制到node1节点上
[root@master1 modules]# scp /etc/docker/daemon.json node2:/etc/docker/ #控制节点1上,把文件复制到node2节点上

[root@node1 modules]# systemctl daemon-reload
[root@node1 modules]# systemctl restart docker

[root@node2 modules]# systemctl daemon-reload
[root@node2 modules]# systemctl restart docker

2.2 三台机器上都安装k8s命令

[root@master1 modules]# yum -y install kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
[root@node1 modules]# yum -y install kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
[root@node2 modules]# yum -y install kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
image

[root@master1 modules]# systemctl start kubelet && systemctl enable kubelet #启动kubelet服务,设置开机自启动
[root@master1 modules]# systemctl status kubelet #查看当前kubelet状态
image

[root@node1 modules]# systemctl start kubelet && systemctl enable kubelet #工作节点1上,开启服务,设置开机自启动
[root@node2 modules]# systemctl start kubelet && systemctl enable kubelet #工作节点2上,开启服务,设置开机自启动

三、安装k8s集群

3.1 把离线镜像包k8simage-1-20-6.tar.gz,上传到master1、node1、node2节点上

链接:https://pan.baidu.com/s/1CVaBka55niAb96NnEKwMnQ?pwd=1234
提取码:1234
[root@master1 modules]# mkdir -p /root/docker-io/ #控制节点1上,新建一个目录,存放离线镜像包
[root@node1 modules]# mkdir -p /root/docker-io/ #工作节点1上,新建一个目录,存放离线镜像包
[root@node2 /]# mkdir -p /root/docker-io/ #工作节点2上,新建一个目录,存放离线镜像包

[root@master1 modules]# cd /root/docker-io/ #控制节点1上,进入该目录,上传k8simage-1-20-6.tar.gz
[root@master1 docker-io]# scp k8simage-1-20-6.tar.gz node1:/root/docker-io/ #控制节点1上,复制镜像包,到node1节点的/root/docker-io/目录下
[root@master1 docker-io]# scp k8simage-1-20-6.tar.gz node2:/root/docker-io/ #控制节点1上,复制镜像包,到node2节点的/root/docker-io/目录下
image

[root@master1 docker-io]# docker load -i k8simage-1-20-6.tar.gz #控制节点1上,解压镜像包
[root@node1 modules]# cd /root/docker-io/ #在工作节点node1上,进入镜像包所在目录
[root@node1 docker-io]# docker load -i k8simage-1-20-6.tar.gz #解压镜像包
[root@node2 docker-io]# docker load -i k8simage-1-20-6.tar.gz #工作节点node2上,解压镜像包

3.2 在控制节点master1上,kubeadm进行初始化,安装k8s的控制节点

[root@master1 docker-io]# kubeadm init --kubernetes-version=1.20.6 --apiserver-advertise-address=192.168.10.201 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification
image

[root@master1 docker-io]# mkdir -p $HOME/.kube
[root@master1 docker-io]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master1 docker-io]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

[root@master1 docker-io]# kubectl get nodes #在控制节点1上,查看所有的节点,状态not-ready是正常的,安装网络插件后才会转换成ready状态
image

3.3 扩容K8S集群-添加一个工作节点node1

[root@master1 docker-io]# kubeadm token create --print-join-command #在控制节点1上,查看加入该集群的命令
image
[root@node1 docker-io]# kubeadm join 192.168.10.201:6443 --token umlcfj.w28cytg80jlfopmh --discovery-token-ca-cert-hash sha256:a9d134acfa6bd115632db12f803828d18154536d9cf87f5939eaef148bed9ed8 #复制控制节点1上输出的命令,粘贴到工作节点1上,执行
image

[root@master1 docker-io]# kubectl get nodes #在控制节点1上,查看所有的节点,工作节点1加入集群成功
image

3.4 扩容K8S集群-添加第二个工作节点node2

[root@master1 docker-io]# kubeadm token create --print-join-command #在控制节点1上,查看加入该集群的命令,token每次执行这个命令,都不一样
image

[root@node2 docker-io]# kubeadm join 192.168.10.201:6443 --token puo9oa.deu7t3ty81t76wtu --discovery-token-ca-cert-hash sha256:a9d134acfa6bd115632db12f803828d18154536d9cf87f5939eaef148bed9ed8 #复制控制节点1上输出的命令,粘贴到工作节点2上,执行
image

[root@master1 docker-io]# kubectl get nodes #在控制节点1上,查看所有的节点,工作节点2加入集群成功
image

[root@master1 docker-io]# systemctl status kubelet.service #控制节点1上,查看kubelet服务,只有k8s集群运行时,kubelet服务的状态从aotu-ready状态转换为running状态
image

3.5 K8S集群上一些操作

[root@master1 docker-io]# kubectl get pods -n kube-system -o wide #控制节点1上,查看名称空间为kube-system中的pods资源情况,-o wide列出详细信息
image
控制节点master1上有:etcd、apiserver、controller-manager、proxy、scheduler等组件
工作节点上有:proxy组件;
coredns组件此时状态为pending(调度状态),是因为没有安装网络组件calico。

给node节点打上标签label
[root@master1 docker-io]# kubectl get nodes
[root@master1 docker-io]# kubectl label node node1 node-role.kubernetes.io/worker=woker
[root@master1 docker-io]# kubectl label node node2 node-role.kubernetes.io/worker=woker
[root@master1 docker-io]# kubectl get nodes
image

3.6 K8S集群安装网络组件--calico

不安装网络插件的话,K8S集群目前使用不了,创建的pod,无法分配IP。
[root@master1 docker-io]# kubectl get pods -n kube-system -o wide #查看kube-system下pods资源信息
image
api-server、controller-manager、proxy、etcd、scheduler等组件使用的IP是物理机的IP。coredns需要使用pod网段IP,这个在初始化kubeadm控制节点是已经指定为10.244.0.0/16网段的地址了。

[root@master1 docker-io]# mkdir -p /root/yamls/ #在控制节点1上,新建/root/yamls/目录,存放K8S的一些yaml文件
[root@master1 docker-io]# cd /root/yamls/ && ll #进入该目录
上传calico.yaml文件到控制节点1的/root/yamls/目录下
链接:https://pan.baidu.com/s/1yCe7uBscm_cm2gVOhS70Vw?pwd=1234
提取码:1234
[root@master1 yamls]# ll
image

[root@master1 yamls]# kubectl apply -f calico.yaml #在控制节点1上,更新资源清单
[root@master1 yamls]# kubectl get pods -n kube-system -o wide #再次查看pod资源状态
image

[root@master1 yamls]# kubectl get nodes #查看所有节点状态-均正常
image

3.7 验证一、K8S集群中创建pod后,是否正常访问网络--验证calico是否安装正常

把离线镜像包busybox-1-28.tar.gz上传到工作节点1、2的/root/docker-io/目录下
链接:https://pan.baidu.com/s/1nR6T-2oZWHUwwVwFjCDW9g?pwd=1234
提取码:1234

image

image

[root@node1 docker-io]# docker load -i busybox-1-28.tar.gz #工作节点1上解压镜像包
[root@node2 docker-io]# docker load -i busybox-1-28.tar.gz #工作节点2上解压镜像包

[root@master1 yamls]# kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh
/ # ping www.baidu.com #进入pod里面,ping百度能通
/ # exit #退出该pod
image

3.8 验证二、K8S集群部署tomcat服务,集群外能否正常访问--验证service四层代理是否正常

把离线镜像包tomcat.tar.gz上传到工作节点node1、node2的/root/docker-io/目录下
image
image

[root@node1 docker-io]# docker load -i tomcat.tar.gz #工作节点1上解压
[root@node2 docker-io]# docker load -i tomcat.tar.gz #工作节点2上解压

把资源清单tomcat.yaml上传到控制节点1的/root/yamls/目录下
image

[root@master1 yamls]# kubectl apply -f tomcat.yaml #控制节点1更新yaml清单,创建pod

[root@master1 yamls]# kubectl get pods -o wide #查看pod资源
image
该pod的ip是10.244.104.3,外部浏览器是访问不到的,需要做一些service代理
把tomcat-service.yaml文件上传到控制节点1的/root/yamls/目录下
[root@master1 yamls]# kubectl apply -f tomcat-service.yaml #更新service清单,创建svc资源
[root@master1 yamls]# kubectl get svc #查看svc资源信息
image
浏览器访问 http://192.168.10.201:30080 http://192.168.10.211:30080 http://192.168.10.212:30080 均可访问成功
image

[root@master1 yamls]# curl http://10.110.72.178:8080 -I #K8S集群内,curl 该tomcat对应的svc地址加端口
[root@master1 yamls]# curl http://10.244.104.3:8080 -I #K8S集群内,curltomcat所在的pod地址加端口

image

3.9 验证三、测试coredns是否正常

[root@master1 ~]# kubectl get svc -o wide
image

[root@master1 yamls]# kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh #创建pod
/ # nslookup kubernetes.default.svc.cluster.local
/ # nslookup tomcat.default.svc.cluster.local
/ # exit
image

3.10 如何延长K8S证书时间,默认是1年

[root@master1 yamls]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not #控制节点1上,查看当前K8S集群证书的有效时间--只有1年
image

上传脚本文件update-kubeadm-cert.sh到控制节点1上,加权执行脚本,重启K8S各种组件服务,再次验证证书时间
[root@master1 ~]# chmod +x update-kubeadm-cert.sh
[root@master1 ~]# ./update-kubeadm-cert.sh all
[root@master1 ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not
image

四、安装K8S可视化UI界面dashboard

4.1 上传离线镜像包dashboard_2_0_0.tar.gz、metrics-scrapter-1-0-1.tar.gz上传到工作节点1、2的/root/docker-io/目录下

[root@node1 docker-io]# docker load -i dashboard_2_0_0.tar.gz #工作节点1上,加载镜像
[root@node1 docker-io]# docker load -i metrics-scrapter-1-0-1.tar.gz
[root@node2 docker-io]# docker load -i dashboard_2_0_0.tar.gz
[root@node2 docker-io]# docker load -i metrics-scrapter-1-0-1.tar.gz

4.2 上传kubernetes-dashboard.yaml文件到控制节点1的/root/yamls/目录中

[root@master1 yamls]# kubectl apply -f kubernetes-dashboard.yaml
[root@master1 yamls]# kubectl get pods -n kubernetes-dashboard
image

4.3 一些操作

[root@master1 yamls]# kubectl get svc -n kubernetes-dashboard #查看dashboard前端的service
把service type类型改成NodePort
[root@master1 yamls]# kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
image

[root@master1 yamls]# kubectl get svc -n kubernetes-dashboard
image

**用浏览器访问IP:30349 https://192.168.10.201:30349/ **
image

4.4 方式一:通过token令牌访问dashboard

4.4.1 创建管理员token,具有查看任何空间的权限,可以管理所有资源对象

[root@master1 yamls]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard
image

4.4.2 查看kubernetes-dashboard名称空间下的secret

[root@master1 yamls]# kubectl get secret -n kubernetes-dashboard
image

4.4.3 找到对应的带有token的kubernetes-dashboard-token-296km

[root@master1 yamls]# kubectl describe secret kubernetes-dashboard-token-296km -n kubernetes-dashboard
image

把上面的token值复制一下,填写浏览器的值
image
image

4.5 方式二、通过kubeconfig文件访问dashboard

[root@master1 yamls]# cd /etc/kubernetes/pki/

4.5.1 创建cluster集群

[root@master1 pki]# kubectl config set-cluster kubernetes --certificate-authority=./ca.crt --server="https://192.168.10.201:6443" --embed-certs=true --kubeconfig=/root/dashboard-admin.conf
image

4.5.2 创建credentials

创建credentials需要使用上面的kubernetes-dashboard-token-296km对应的token信息
[root@master1 pki]# DEF_NS_ADMIN_TOKEN=$(kubectl get secret kubernetes-dashboard-token-296km -n kubernetes-dashboard -o jsonpath={.data.token}|base64 -d)
image

[root@master1 pki]# kubectl config set-credentials dashboard-admin --token=$DEF_NS_ADMIN_TOKEN --kubeconfig=/root/dashboard-admin.conf
image

4.5.3 创建context

[root@master1 pki]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/dashboard-admin.conf
image

4.5.4 切换context的current-context是dashboard-admin@kubernetes

[root@master1 pki]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/dashboard-admin.conf
image

4.5.5 把刚才的kubeconfig文件dashboard-admin.conf复制到桌面

[root@master1 pki]# cd /root/
[root@master1 ~]# ll
image

浏览器访问时使用kubeconfig认证,把刚才的dashboard-admin.conf导入到web界面,那么就可以登陆了
[root@master1 ~]# kubectl get svc -n kubernetes-dashboard
image

**浏览器访问 **
image

image

4.6 通过kubernetes-dashboard创建容器

4.6.1 把nginx.tar.gz镜像压缩包上传到node1、node2节点的/root/docker-io/目录下,解压

image

[root@node1 docker-io]# docker load -i nginx.tar.gz
[root@node1 docker-io]# scp nginx.tar.gz node2:/root/docker-io/
[root@node2 docker-io]# docker load -i nginx.tar.gz

4.6.2 打开kubernetes的dashboard界面 https://192.168.10.201:30349/

image

image
image

image

http://192.168.10.201:30472/ 访问
image

posted @ 2022-08-08 08:01  菜鸟不想早飞  阅读(81)  评论(0)    收藏  举报