搭建三节点的kubernetes(K8S)集群

Kubernates安装配置文档

先决条件

1.需要的yaml文件所在的github地址如下:

https://github.com/luckylucky421/kubernetes1.17.3/tree/master

2.下文里初始化k8s集群需要的镜像获取方式:镜像在百度网盘,链接如下:

链接:https://pan.baidu.com/s/1beq1n0nyTOdU_y6ohW4a5A

提取码:0829

正文 根据自身服务器情况所需进行变更

一、准备实验环境

服务器名称服务IP镜像压缩包
K8s-master192.168.10.80/root/mirrors
K8s-node1192.168.10.81/root/mirrors
K8s-node2192.168.10.82/root/mirrors

二、初始化实验环境

1.配置静态ip

把虚拟机或者物理机配置成静态ip地址,这样机器重新启动后ip地址也不会发生改变。

1.1 在master节点配置网络

修改/etc/sysconfig/network-scripts/ifcfg-ens160文件,变成如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.80
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
DEVICE=ens160
ONBOOT=yes

修改配置文件之后需要重启网络服务才能使配置生效,重启网络服务命令如下:

service network restart

注:ifcfg-ens160文件配置解释:

#ip地址
IPADDR=192.168.10.80 

#子网掩码
NETMASK=255.255.255.0

#网关
GATEWAY=192.168.10.1

#DNS
DNS1=8.8.8.8  
 
1.2 在node1节点配置网络

修改/etc/sysconfig/network-scripts/ifcfg-ens160文件,变成如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.81
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
DEVICE=ens160
ONBOOT=yes

修改配置文件之后需要重启网络服务才能使配置生效,重启网络服务命令如下:

service network restart
1.3 在node2节点配置网络

修改/etc/sysconfig/network-scripts/ifcfg-ens160文件,变成如下:


TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.82
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=8.8.8.
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
DEVICE=ens160
ONBOOT=yes
2.修改yum源,各个节点操作
2.1 备份原来的yum源
mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup
2.2 下载阿里的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.3 生成新的yum缓存
yum makecache fast
2.4 配置安装k8s需要的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
2.5 清理yum缓存
yum clean all
2.6 生成新的yum缓存
yum makecache fast
2.7 更新yum源
yum -y update
2.8 安装软件包
yum -y install yum-utilsdevice-mapper-persistent-data  lvm2
2.9 添加新的软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache fast
3.安装基础软件包,各个节点操作
yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntplibaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-serversocat ipvsadm conntrack ntpdate
4.关闭firewalld防火墙,各个节点操作
systemctl stopfirewalld  && systemctl  disable firewalld
5.时间同步,各个节点操作
5.1 时间同步
ntpdate cn.pool.ntp.org
5.2 编辑计划任务,每小时做一次同步
5.2.1 crontab -e
*/1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org
5.2.2 重启crond服务
service crond restart
6.关闭selinux,各个节点操作

关闭selinux,设置永久关闭,这样重启机器selinux也处于关闭状态

修改/etc/sysconfig/selinux和/etc/selinux/config文件,把SELINUX=enforcing变成SELINUX=disabled,也可用下面方式修改:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

上面文件修改之后,需要重启虚拟机,可以强制重启:

reboot -f
7.关闭交换分区,各个节点操作
swapoff -a

#永久禁用,打开/etc/fstab注释掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab
8.修改内核参数,各个节点操作
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system
9.修改主机名

在192.168.10.80运行:

hostnamectl set-hostname K8s-master

在192.168.10.81运行:

hostnamectl set-hostname K8s-node1

在192.168.10.82运行:

hostnamectl set-hostname K8s-node2

最后配置hosts文件,各个节点操作

在/etc/hosts文件增加如下几行:

192.168.10.80 K8s-master

192.168.10.81 K8s-node1

192.168.10.82 K8s-node2

三.安装kubernetes1.18.2单master节点的高可用集群

1 安装docker19.03,各个节点操作
1.1 查看支持的docker版本
yum list docker-ce --showduplicates |sort -r
1.2 安装19.03.7版本
yum install -y docker-ce-19.03.7-3.el7

systemctl enable docker && systemctl start docker

#查看docker状态,如果状态是active(running),说明docker是正常运行状态
systemctl status docker
1.3 修改docker配置文件
cat > /etc/docker/daemon.json <<EOF
{
 "exec-opts":["native.cgroupdriver=systemd"],
 "log-driver":"json-file",
 "log-opts": {
  "max-size": "100m"
  },
 "storage-driver":"overlay2",
 "storage-opts": [
  "overlay2.override_kernel_check=true"
  ]
}
EOF
1.4 重启docker使配置生效
systemctl daemon-reload && systemctl restartdocker
2.安装kubernetes1.18.2
2.1在master和node1,node2上安装kubeadm和kubelet
yum install kubeadm-1.18.2 kubelet-1.18.2 -y
systemctl enable kubelet
2.2上传镜像到master和node1,node2节点之后,按如下方法通过docker load -i手动解压镜像
docker load -i 1-18-kube-apiserver.tar.gz
docker load -i 1-18-kube-scheduler.tar.gz
docker load -i 1-18-kube-controller-manager.tar.gz
docker load -i 1-18-pause.tar.gz
docker load -i 1-18-cordns.tar.gz
docker load -i 1-18-etcd.tar.gz
docker load -i 1-18-kube-proxy.tar.gz

说明:

  • pause版本是3.2,用到的镜像是k8s.gcr.io/pause:3.2

  • etcd版本是3.4.3,用到的镜像是k8s.gcr.io/etcd:3.4.3-0

  • cordns版本是1.6.7,用到的镜像是k8s.gcr.io/coredns:1.6.7

  • apiserver、scheduler、controller-manager、kube-proxy版本是1.18.2,用到的镜像分别是

    • k8s.gcr.io/kube-apiserver:v1.18.2
    • k8s.gcr.io/kube-controller-manager:v1.18.2
    • k8s.gcr.io/kube-scheduler:v1.18.2
    • k8s.gcr.io/kube-proxy:v1.18.2
2.3初始化k8s集群
kubeadminit  --kubernetes-version=v1.18.2 --pod-network-cidr=10.244.0.0/16--apiserver-advertise-address=192.168.10.80

初始化命令执行成功之后显示如下内容,说明初始化成功了

Your Kubernetes control-plane has initialized successfully!

 
To start using your cluster, you need to run the following as a regularuser:

 
  mkdir -p $HOME/.kube

  sudo cp -i/etc/kubernetes/admin.conf $HOME/.kube/config

  sudo chown $(id -u):$(id -g)$HOME/.kube/config

 

You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml" with one of the optionslisted at:

 https://kubernetes.io/docs/concepts/cluster-administration/addons/

 
Then you can join any number of worker nodes by running the following oneach as root:

 
kubeadm join 192.168.10.80:6443 --token si1c9n.3c5os94xcuzq6wl3 \

--discovery-token-ca-cert-hashsha256:9d3a35eab0f6badba61ebb833d420902e4f9e0168ee1c1374121668ab382a596

注:kubeadm join … 这条命令需要记住,我们把k8s的node1,node2节点加入到集群需要在这些节点节点输入这条命令,每次执行这个结果都是不一样的,大家记住自己执行的结果,在下面会用到

2.4在master节点执行如下,这样才能有权限操作k8s资源
mkdir -p $HOME/.kube

sudo cp -i  /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g)  $HOME/.kube/config

在master节点执行

kubectl get nodes

显示如下,master节点是NotReady

NAME     STATUS     ROLES    AGE    VERSION 
master1   NotReady   master   8m11s   v1.18.2

在master节点执行

kubectl get pods -n kube-system

显示如下,可看到cordns也是处于pending状态

coredns-7ff77c879f-j48h6              0/1    Pending  0          3m16scoredns-7ff77c879f-lrb77         0/1    Pending  0          3m16s

上面可以看到STATUS状态是NotReady,cordns是pending,是因为没有安装网络插件,需要安装calico或者flannel,接下来我们安装calico,在master节点安装calico网络插件:

2.5安装calico

需要的镜像是quay.io/calico/cni:v3.5.3和quay.io/calico/node:v3.5.3

手动上传上面两个镜像的压缩包到各个节点,通过docker load -i解压

docker load -i cni.tar.gz
docker load -i calico-node.tar.gz

在master节点执行如下

kubectl apply -f calico.yaml

在master节点执行

kubectl get nodes

显示如下,看到STATUS是Ready

NAME    STATUS   ROLES    AGE  VERSION
master1  Ready    master   98m  v1.18.2

在master节点执行

kubectl get pods -n kube-system

看到cordns也是running状态,说明master节点的calico安装完成

NAME                           READY   STATUS   RESTARTS   AGE
calico-node-6rvqm               1/1     Running  0          17m
coredns-7ff77c879f-j48h6        1/1    Running   0          97m
coredns-7ff77c879f-lrb77        1/1    Running   0          97m
etcd-master1                    1/1     Running  0          97m
kube-apiserver-master1          1/1     Running  0          97m
kube-controller-manager-master1 1/1     Running  0          97m
kube-proxy-njft6                1/1     Running  0          97m
kube-scheduler-master1          1/1     Running  0          97m
2.6 把node1节点加入到k8s集群,在node1节点操作
kubeadm join 192.168.10.80:6443 --token si1c9n.3c5os94xcuzq6wl3 \
--discovery-token-ca-cert-hashsha256:9d3a35eab0f6badba61ebb833d420902e4f9e0168ee1c1374121668ab382a596
2.7 把node2节点加入到k8s集群,在node2节点操作
kubeadm join 192.168.10.80:6443 --token si1c9n.3c5os94xcuzq6wl3 \
--discovery-token-ca-cert-hashsha256:9d3a35eab0f6badba61ebb833d420902e4f9e0168ee1c1374121668ab382a596

注:上面的这个加入到k8s节点的一串命令kubeadm join就是在2.4初始化的时候生成的

2.8 在master节点查看集群节点状态
kubectl get nodes  

显示如下:

NAME       STATUS     ROLES    AGE   VERSION
K8s-master    Ready   master   3m36s v1.18.2
K8s-node1      Ready   <none>   3m36s v1.18.2
K8s-node2      Ready   <none>   3m36s v1.18.2

说明node1,node2节点也加入到k8s集群了,通过以上就完成了k8s单master高可用集群的搭建

2.9 安装traefik

官网:https://docs.traefik.io/

把traefik镜像上传到各个节点,按照如下方法通过docker load -i解压

docker load -i traefik_1_7_9.tar.gz

traefik用到的镜像是k8s.gcr.io/traefik:1.7.9

2.9.1 生成traefik证书,在master上操作
mkdir  ~/ikube/tls/ -p

echo """
[req]
distinguished_name = req_distinguished_name
prompt = yes

[ req_distinguished_name ]
countryName                    = Country Name (2 letter code)
countryName_value               = CN
stateOrProvinceName             = State orProvince Name (full name)
stateOrProvinceName_value       = Beijing
localityName                   = Locality Name (eg, city)
localityName_value              =Haidian
organizationName                =Organization Name (eg, company)
organizationName_value          = Channelsoft
organizationalUnitName          = OrganizationalUnit Name (eg, p)
organizationalUnitName_value    = R & D Department
commonName                     = Common Name (eg, your name or your server\'s hostname)
commonName_value                =*.multi.io
emailAddress                   = Email Address
emailAddress_value              =lentil1016@gmail.com
""" > ~/ikube/tls/openssl.cnf


openssl req -newkey rsa:4096 -nodes -config ~/ikube/tls/openssl.cnf -days 3650 -x509 -out ~/ikube/tls/tls.crt -keyout ~/ikube/tls/tls.key

kubectl create -n kube-system secret tls ssl --cert ~/ikube/tls/tls.crt --key ~/ikube/tls/tls.key
2.9.2 执行yaml文件,创建traefik
kubectl apply -f traefik.yaml
2.9.3 查看traefik是否部署成功:
kubectl get pods -n kube-system

traefik-ingress-controller-csbp8  1/1     Running   0         5s
traefik-ingress-controller-hqkwf  1/1     Running   0         5s
3.安装kubernetes-dashboard-2版本(kubernetes的web ui界面)
3.1 安装dashboard

把kubernetes-dashboard镜像上传到各个节点,按照如下方法通过docker load -i解压

docker load -i dashboard_2_0_0.tar.gz
docker load -i metrics-scrapter-1-0-1.tar.gz

解压出来的镜像是kubernetesui/dashboard:v2.0.0-beta8和kubernetesui/metrics-scraper:v1.0.1

在master节点操作

kubectl apply -f kubernetes-dashboard.yaml

查看dashboard是否安装成功:

kubectl get pods -n kubernetes-dashboard

显示如下,说明dashboard安装成功了

NAME                                        READY   STATUS    RESTARTS  AGE 
dashboard-metrics-scraper-694557449d-8xmtf   1/1    Running   0          60s  
kubernetes-dashboard-5f98bdb684-ph9wg        1/1    Running   2          60s

查看dashboard前端的service

kubectl get svc -n kubernetes-dashboard

显示如下:

NAME                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE  
dashboard-metrics-scraper ClusterIP  10.100.23.9       <none>        8000/TCP   50s  
kubernetes-dashboard       ClusterIP   10.105.253.155   <none>        443/TCP    50s

修改service type类型变成NodePort:

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

把type: ClusterIP变成 type: NodePort,保存退出即可。

kubectl get svc -n kubernetes-dashboard

显示如下:

NAME                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper  ClusterIP   10.100.23.9      <none>        8000/TCP        3m59s
kubernetes-dashboard       NodePort    10.105.253.155   <none>        443:31175/TCP   4m

上面可看到service类型是NodePort,访问master节点ip:31175端口即可访问kubernetes dashboard,我的环境需要输入如下地址

https://192.168.10.80:31175/

可看到出现了dashboard界面

3.2 通过yaml文件里指定的默认的token登陆dashboard
3.2.1 查看kubernetes-dashboard名称空间下的secret
kubectl get secret -n kubernetes-dashboard

显示如下:

NAME                              TYPE                                 DATA   AGE
default-token-vxd7t               kubernetes.io/service-account-token  3      5m27s
kubernetes-dashboard-certs        Opaque                               0      5m27s
kubernetes-dashboard-csrf         Opaque                               1      5m27s
kubernetes-dashboard-key-holder   Opaque                               2      5m27s
kubernetes-dashboard-token-ngcmg  kubernetes.io/service-account-token  3      5m27s
3.2.2 找到对应的带有token的kubernetes-dashboard-token-ngcmg
kubectl  describe  secret kubernetes-dashboard-token-ngcmg  -n   kubernetes-dashboard

显示如下:

token:  eyJhbGciOiJSUzI1NiIsImtpZCI6IjZUTVVGMDN4enFTREpqV0s3cDRWa254cTRPc2xPRTZ3bk8wcFJBSy1JSzgif
Q.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3B
hY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJr
dWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1uZ2NtZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY
2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS
1hY2NvdW50LnVpZCI6ImYwMDFhNTM0LWE2ZWQtNGQ5MC1iMzdjLWMxMWU5Njk2MDE0MCIsInN1YiI6InN5c3RlbTpzZXJ2aWN
lYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.WQFE0ygYdKkUjaQjFFU-BeWqys0
7J98N24R_azv6f-o9AB8Zy1bFWZcNrOlo6WYQuh-xoR8tc5ZDuLQlnZMBSwl2jo9E9FLZuEt7klTfXf4TkrQGLCxzDMD5c2nX
bdDdLDtRbSwQMcQwePwp5WTAfuLyqJPFs22Xi2awpLRzbHn3ei_czNuamWUuoGHe6kP_rTnu6OUpVf1txi9C1Tg_3fM2ibNy-
NWXLvrxilG3x3SbW1A3G6Y2Vbt1NxqVNtHRRQsYCvTnp3NZQqotV0-TxnvRJ3SLo_X6oxdUVnqt3DZgebyIbmg3wvgAzGmuSL
lqMJ-mKQ7cNYMFR2Z8vnhhtA

记住token后面的值,把下面的token值复制到浏览器token登陆处即可登陆:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjZUTVVGMDN4enFTREpqV0s3cDRWa254cTRPc2xPRTZ3bk8wcFJBSy1JSzgifQ.eyJpc3
MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJ
rdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5l
dGVzLWRhc2hib2FyZC10b2tlbi1uZ2NtZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50L
m5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW
50LnVpZCI6ImYwMDFhNTM0LWE2ZWQtNGQ5MC1iMzdjLWMxMWU5Njk2MDE0MCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3V
udDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.WQFE0ygYdKkUjaQjFFU-BeWqys07J98N24R
_azv6f-o9AB8Zy1bFWZcNrOlo6WYQuh-xoR8tc5ZDuLQlnZMBSwl2jo9E9FLZuEt7klTfXf4TkrQGLCxzDMD5c2nXbdDdLDtR
bSwQMcQwePwp5WTAfuLyqJPFs22Xi2awpLRzbHn3ei_czNuamWUuoGHe6kP_rTnu6OUpVf1txi9C1Tg_3fM2ibNy-NWXLvrxi
lG3x3SbW1A3G6Y2Vbt1NxqVNtHRRQsYCvTnp3NZQqotV0-TxnvRJ3SLo_X6oxdUVnqt3DZgebyIbmg3wvgAzGmuSLlqMJ-mKQ
7cNYMFR2Z8vnhhtA

点击sing in登陆,显示如下,默认是只能看到default名称空间内容

3.3 创建管理员token,可查看任何空间权限
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard
3.3.1 查看kubernetes-dashboard名称空间下的secret
kubectl get secret -n kubernetes-dashboard

显示如下:

NAME                              TYPE                                 DATA   AGE
default-token-vxd7t               kubernetes.io/service-account-token  3      5m27s
kubernetes-dashboard-certs        Opaque                               0      5m27s
kubernetes-dashboard-csrf         Opaque                               1      5m27s
kubernetes-dashboard-key-holder   Opaque                                2      5m27s
kubernetes-dashboard-token-ngcmg  kubernetes.io/service-account-token  3      5m27s
3.3.2 找到对应的带有token的kubernetes-dashboard-token-ngcmg
kubectl describe secret kubernetes-dashboard-token-ngcmg -n kubernetes-dashboard

显示如下:

token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjZUTVVGMDN4enFTREpqV0s3cDRWa254cTRPc2xPRTZ3bk8wcFJBSy1JSzgifQ.
eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2
UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJl
cm5ldGVzLWRhc2hib2FyZC10b2tlbi1uZ2NtZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW
50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2Nv
dW50LnVpZCI6ImYwMDFhNTM0LWE2ZWQtNGQ5MC1iMzdjLWMxMWU5Njk2MDE0MCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3
VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.WQFE0ygYdKkUjaQjFFU-BeWqys07J98N24R
_azv6f-o9AB8Zy1bFWZcNrOlo6WYQuh-xoR8tc5ZDuLQlnZMBSwl2jo9E9FLZuEt7klTfXf4TkrQGLCxzDMD5c2nXbdDdLDtRb
SwQMcQwePwp5WTAfuLyqJPFs22Xi2awpLRzbHn3ei_czNuamWUuoGHe6kP_rTnu6OUpVf1txi9C1Tg_3fM2ibNy-NWXLvrxilG
3x3SbW1A3G6Y2Vbt1NxqVNtHRRQsYCvTnp3NZQqotV0-TxnvRJ3SLo_X6oxdUVnqt3DZgebyIbmg3wvgAzGmuSLlqMJ-mKQ7cN
YMFR2Z8vnhhtA

记住token后面的值,把下面的token值复制到浏览器token登陆处即可登陆:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjZUTVVGMDN4enFTREpqV0s3cDRWa254cTRPc2xPRTZ3bk8wcFJBSy1JSzgifQ.eyJpc3M
iOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrd
WJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGV
zLWRhc2hib2FyZC10b2tlbi1uZ2NtZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hb
WUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnV
pZCI6ImYwMDFhNTM0LWE2ZWQtNGQ5MC1iMzdjLWMxMWU5Njk2MDE0MCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprd
WJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.WQFE0ygYdKkUjaQjFFU-BeWqys07J98N24R_azv6f-
o9AB8Zy1bFWZcNrOlo6WYQuh-xoR8tc5ZDuLQlnZMBSwl2jo9E9FLZuEt7klTfXf4TkrQGLCxzDMD5c2nXbdDdLDtRbSwQMcQw
ePwp5WTAfuLyqJPFs22Xi2awpLRzbHn3ei_czNuamWUuoGHe6kP_rTnu6OUpVf1txi9C1Tg_3fM2ibNy-NWXLvrxilG3x3SbW1
A3G6Y2Vbt1NxqVNtHRRQsYCvTnp3NZQqotV0-TxnvRJ3SLo_X6oxdUVnqt3DZgebyIbmg3wvgAzGmuSLlqMJ-mKQ7cNYMFR2Z8
vnhhtA

点击sing in登陆,显示如下,这次就可以看到和操作任何名称空间的资源了

4.安装metrics组件

把metrics-server-amd64_0_3_1.tar.gz和addon.tar.gz镜像上传到各个节点,按照如下方法通过docker load -i解压

docker load -i metrics-server-amd64_0_3_1.tar.gz
docker load -i addon.tar.gz 

metrics-server版本0.3.1,用到的镜像是k8s.gcr.io/metrics-server-amd64:v0.3.1

addon-resizer版本是1.8.4,用到的镜像是k8s.gcr.io/addon-resizer:1.8.4

在k8s的master节点操作

kubectl apply -f metrics.yaml

上面组件都安装之后,查看组件安装是否正常,STATUS状态是Running,说明组件正常,如下所示:

kubectl  get  pods  -n kube-system  -o wide

NAME                               READY   STATUS   RESTARTS   AGE   IP             NODE      NOMINATE
calico-node-h66ll                  1/1     Running  0          51m   192.168.0.56   node1    <none> 
calico-node-r4k6w                  1/1     Running  0          58m   192.168.0.6    master1  <none> 
coredns-66bff467f8-2cj5k           1/1     Running  0          70m   10.244.0.3     master1  <none> 
coredns-66bff467f8-nl9zt           1/1     Running  0          70m   10.244.0.2     master1  <none> 
etcd-master1                       1/1     Running  0          70m   192.168.0.6    master1  <none> 
kube-apiserver-master1             1/1     Running  0          70m   192.168.0.6    master1  <none> 
kube-controller-manager-master1    1/1    Running   0          70m  192.168.0.6    master1   <none> 
kube-proxy-qts4n                   1/1     Running  0          70m   192.168.0.6    master1  <none> 
kube-proxy-x647c                   1/1     Running  0          51m   192.168.0.56   node1    <none> 
kube-scheduler-master1             1/1     Running  0          70m   192.168.0.6    master1  <none> 
metrics-server-8459f8db8c-gqsks    2/2    Running   0          16s  10.244.1.6     node1     <none> 
traefik-ingress-controller-xhcfb   1/1    Running   0          39m  192.168.0.6    master1   <none> 
traefik-ingress-controller-zkdpt   1/1    Running   0          39m  192.168.0.56   node1     <none>

上面如果看到metrics-server-8459f8db8c-gqsks是running状态,说明metrics-server组件部署成功了,接下来就可以在master节点上使用kubectl get pods -n kube-system或者kubectl get nodes命令

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值