![再也不踩坑的kubernetes实战指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/323/27563323/b_27563323.jpg)
1.3 二进制高可用安装K8S集群(1.13.x和1.14.x)
上一节讲解了使用Kubeadm安装高可用Kubernetes集群,虽然现在kubeadm是官方默认的安装方式,但是在生产环境中仍然不建议使用Kubeadm安装方式。在实际测试中,二进制安装方式比Kubeadm安装方式更加稳定可靠,并且集群的恢复能力比Kubeadm要高。不过在线下的测试环境,为了能够快速实现测试及部署可以使用Kubeadm安装方式,等到在生产环境中时仍然建议采用二进制安装方式。
本节介绍Kubernetes 1.13.x和1.14.x版本的高可用集群的安装,在二进制安装方式下,很多步骤需要自己手动完成,比如证书和配置文件的生成等,在二进制安装过程中,其他版本的安装过程基本一致,替换二进制文件的版本即可。
关于基本环境的配置请参考1.1.1节(yum仓库配置可省略),同样采用5台主机,3台Master和2台Node。
注意
与之前不同的是,本例的VIP为192.168.20.110
1.3.1 基本组件安装
关于内核升级,请参考1.1.2节。
和Kubeadm安装方式一致,同样需要提前安装集群中必需的组件。
所有节点安装Docker:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P37_57239.jpg?sign=1739334049-R8wke6F0TUVDM5uMxxeRWcTbRLluGHc8-0-7012cebe7b057c7126ec7b219f223dff)
所有节点开启Docker并设置为开机自启动:
systemctl enable --now docker
下载Kubernetes,本例安装的是13.1,其他版本请自行修改:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P37_57241.jpg?sign=1739334049-fUNkzhfjQpfbuZIgeJ0Oyopgvve79Jy4-0-69e3b6811a4b0013fd16d72de06e01d4)
也可在GitHub上下载:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P37_57242.jpg?sign=1739334049-BWRcyIHz9TQzTI59o5jSB6Yno5EFDEuo-0-ec98aabe115647e16b948e5d6e2cfac2)
下载Etcd文件,如果安装的是1.14.x版,则可以选择安装Etcd的3.3.10版:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P37_10097.jpg?sign=1739334049-5hecqHlTHIA6iIH13xyGUfpMEP8UnmCD-0-950c32f4e24d0a1c29f3a924d061117d)
将各组件分发至其他节点:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P38_57245.jpg?sign=1739334049-tIssuinJ9bzjniD3clVVRwjgs211USw6-0-9d055a0bb1bf2be4d3b16afb7b355b89)
所有Master节点安装HAProxy和KeepAlived,可参考1.1.4节
1.3.2 CNI安装
CNI(Container Network Interface,容器网络接口)是CNCF旗下的一个项目,由一组用于配置容器的网络接口的规范和库组成。CNI主要用于解决容器网络互联的配置并支持多种网络模式。CNI的安装步骤如下。
所有节点创建CNI目录:
mkdir -p /opt/cni/bin
Master01下载CNI,如果安装的是1.14.x版本,可以安装CNI的0.7.5版本:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P38_57247.jpg?sign=1739334049-GKzwGe4awRgJz3f7lMWBMEqQt42rQJWq-0-0d01c58d9c11f5161b80261a270070e0)
将CNI分发至其他节点:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P38_57248.jpg?sign=1739334049-LF5NdhUEVICPwF6moKkFhChFvdGz1OZ0-0-65154cfde862c25ac0c7801668e49f68)
1.3.3 生成证书
在Kubeadm安装方式下,初始化时会自动生成证书,但在二进制安装方式下,需要手动生成证书,可以使用OpenSSL或者cfssl。具体操作步骤如下:
Master01安装cfssl:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P39_57254.jpg?sign=1739334049-hBBj0g5gRtGe6sjrwAJjQqXmhQsnxdPa-0-a3b7cc50e3048c4c98d7034333631db2)
所有Master节点创建Etcd证书目录:
mkdir /etc/etcd/ssl -p
Master01生成Etcd证书:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P39_57256.jpg?sign=1739334049-yEHHW516p8UIGCGhTWLnFZNpWqt3jMX7-0-fdd7dbcc2e81a11fb084f6282e89aa6d)
将证书复制到其他节点,当前Etcd集群部署在Master节点上,在大规模集群环境中建议部署在集群之外,并且使用SSD硬盘作为Etcd的存储:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P39_57257.jpg?sign=1739334049-IktSvNFvUe22fFZd71NsLHZEYUkMndA2-0-b90f5082ed5885de638c675de1027141)
生成Kubernetes CA:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P39_57258.jpg?sign=1739334049-IAB1dnsF1s1R0naYauqtEqVnwP0bNV93-0-3d1b682ccc67209264a31a2487f7c3d5)
生成API Server证书,10.96.0.1是Cluster IP的Kubernetes端点,用于集群里的Pod调用K8S的API Server,使用时注意不要和公司网络在同一个网段:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P40_57261.jpg?sign=1739334049-yOf4wNMMjLD9vkplc0Kh3SYyyl3t98v8-0-8a20799c4a985aa4e209eb4d29c51852)
创建Front Proxy证书:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P40_57262.jpg?sign=1739334049-KLgA2TfHJhOLTGcu8q30CzoEAWl7TCta-0-b5568863a84626c3f9e36690a8f2869b)
生成ControllerManager证书:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P40_57263.jpg?sign=1739334049-ftBWJKJhfW7EDQEygPwCDSlQrBRGqU8D-0-4533eb12daf37a403bb3ef2939c5d502)
创建ControllerManager的kubeconfig文件,注意修改--server的地址:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P40_57264.jpg?sign=1739334049-nayPIyAzR7hofxyd0PJSpmyFbkBUIyfb-0-ae7db25309dd5d837516303c64e5ab3b)
生成Scheduler证书:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P41_57267.jpg?sign=1739334049-7uJH1tqGUzOz6BPv2cX7JcF7UpZGmB2q-0-9a64d133b3a318e98e8339e698f18939)
生成Scheduler的kubeconfig文件,注意修改--server的地址:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P41_57268.jpg?sign=1739334049-UdoxWcxZ3RUJYIZ6uRv8bSQZaP1qvVSU-0-88987f02130d0d28d80877068df0ff7c)
生成Admin Certificate:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P41_57269.jpg?sign=1739334049-TkF8RNik1JEjFZZXjiuvtTd2Ubrd14nD-0-72f032d57b78846252e9eec44a39998f)
生成Admin的kubeconfig文件,注意修改--server的地址:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P41_2191.jpg?sign=1739334049-rjBLlDtpsIPvcDfo6wtGNMflsFrU1vNF-0-4d9d95cf816de518269ec8acaefd9749)
生成所有Master节点的Kubelet凭证:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P42_57273.jpg?sign=1739334049-8iJ1velGdssF7ZwZxfGHDtgFoT8isBCe-0-0e5a42c68d47bc4b06efb465c0793918)
复制证书到其他节点:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P42_57274.jpg?sign=1739334049-AcaH8usond8fAw74iq0b2udypZrjJv9X-0-5cbbd7abb575ef8f60126ca9e06e02dd)
生成所有Master节点的kubeconfig文件,注意修改--server的地址:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P42_57275.jpg?sign=1739334049-0ZhRdhXvuBEkXZHFKqutDRbcXuaejG4o-0-8ac3ed517577f2a961d2f36904d98516)
创建ServiceAccount Key:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P43_57277.jpg?sign=1739334049-dKjEW0NSw0aDsUzhGmGXTS2CpPKLfTTr-0-6901f1605ce352748b3b983b6a71e5f9)
复制到其他节点:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P43_57278.jpg?sign=1739334049-KScqgNrKyUZUTHE1YW40pt5FmSjWHwJB-0-90b0eae066d1f14901cc666473271522)
1.3.4 系统组件配置
在二进制安装方式下,Kubernetes的组件都是以守护进程的方式运行在宿主机上,相比于Kubeadm安装方式,虽然配置过程较复杂,但是程序运行较稳定,并且恢复能力较强。
首先配置高可用Etcd集群。在Master01节点上创建etcd-master01的配置文件,注意修改对应的IP地址和name(名字):
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P43_57279.jpg?sign=1739334049-Ocg69SQGK8OuS3QghmZU5LRqpEhedotL-0-e26adefaa26b38a94090c9bf5e7b3ec4)
etcd-master02配置文件:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P44_57282.jpg?sign=1739334049-AdMx29XNdBYzL6zV16P3gFUzviUfYhTl-0-f46485f304ed94db3faf73a25ba75319)
etcd-master03配置文件:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P45_57285.jpg?sign=1739334049-VMPB518PPcqQnBUnjIuVvFBmWOVUzCTs-0-934354dac0013534ec67b84fd11a3c11)
所有Master节点配置etcd.service:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P46_57288.jpg?sign=1739334049-1dEN6sfq0G56kL2eiioFmGUolt3PpPMy-0-aca3819897aeacd53e58eac17912edf7)
所有Master节点启动Etcd:
mkdir /etc/kubernetes/pki/etcd ln -s /etc/etcd/ssl/* /etc/kubernetes/pki/etcd/ systemctl daemon-reload systemctl enable --now etcd
查看状态:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P46_57290.jpg?sign=1739334049-fKW3XKt1WgFNWpzmy6Dly52GhzbrT0FE-0-83dcc929abce51348d7db5d78ceb1aac)
本例高可用配置同样使用的是HAProxy和KeepAlived,具体参考1.1.4节。
之后配置Kubernetes集群中的Master组件。
在所有节点创建相关目录:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P47_57293.jpg?sign=1739334049-BOHGxwXQkrGfHYYM5tfCxv7UPPOOkDmG-0-0b0d4265255cccf692d931a3562faacf)
所有Master创建kube-apiserver文件,主要修改advertise-address和etcd-servers,如果在之前修改了ClusterIP的网段(默认10.96.0.0),此时也要修改service-cluster-ip-range的值:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P47_57294.jpg?sign=1739334049-wJG77Xp2asEYxZZSLyHFIbKUgV7oY5U0-0-2d389a332311f97eb998c13194a09527)
注意
Initializers选项在kube-apiserver 1.14.x版本的--enable-admission-plugins已停用。
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P48_57297.jpg?sign=1739334049-T4yepXnousE6lBFU3PVyCMKa21XKbHaW-0-6c0649cc596a2727defc5ebd1e32a9e4)
所有Master节点启动kube-apiserver:
systemctl enable --now kube-apiserver
所有Master创建kube-controller-manager.service,注意修改cluster-cidr的值,此值为Pod IP的网段,不要和宿主机在同一个网段:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P48_57299.jpg?sign=1739334049-tgRbRGYEESN3c05onaRbqDMHUoHxrmNi-0-d0b26cf9d48601968c8b1add30aae5b0)
所有Master节点启动kube-controller-manager:
systemctl daemon-reload systemctl enable --now kube-controller-manager
所有Master创建kube-scheduler:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P49_57303.jpg?sign=1739334049-Ad4HRoaYyYol8xfZBhtrH4eVPXFHjDJc-0-ef1707692f8d81f0378c896c8d116519)
所有Master启动scheduler:
systemctl daemon-reload systemctl enable --now kube-scheduler
查看集群状态。注意如果修改了ClusterIP的范围,kubernetes的端点Service就会有所不同,此时采用的是默认的10.96.0.0网段:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P50_5377.jpg?sign=1739334049-N6PMSJujDRhEwX0xfxO1Dst29akNrE3b-0-1a13b70409afbc06c9011526a83dd73f)
此时未配置网络组件,可能会出现如下报错,可忽略:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P50_57306.jpg?sign=1739334049-n7SUKHUVxXJkoEoOQ1dX6Fva6c2G96nm-0-fe6558790ce0767bc58574431ddb04d9)
1.3.5 TLS Bootstrapping配置
建立TLS Bootstrapping RBAC与Secret,用来解决手动对每台节点单独签署凭证的问题。
建立bootstrap-kubelet.conf的kubernetes config文件:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P50_57307.jpg?sign=1739334049-ukcnB9ugmzWfFAaFqQtdWvkJflnmwYzX-0-0e3d6b30df1e807e22e9f1680fc24fcd)
建立bootstrap secret,注意token-id与token-secret的值和上述命令set-credentials的--token对应:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P50_57308.jpg?sign=1739334049-3CGoiYnBWFUCWc2SvMZXnaNCrZJwBcJ1-0-14e1e54fefcdc30b2b120471fa944f89)
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P51_57310.jpg?sign=1739334049-HHswNWBjgJ7obaIKLC39SubQOthN0zVU-0-a8370e37494f79c0bbcd8e99870ddde0)
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P52_57312.jpg?sign=1739334049-F5F9qy2sXLhCw4HTnVe3IUtsaQh3c6sq-0-7e0184e0fe8a296f337efa84f3d0818c)
创建bootstrap:
[root@K8S-master01 1.2.1]# kubectl create -f bootstrap-rbac.yaml
1.3.6 Node节点的配置
Node节点只需要启动Kubelet即可,具体配置步骤如下。
将证书复制到Node节点:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P52_57314.jpg?sign=1739334049-9DiBrUwM6GfCJDs97r4ctG5VBwI4XEQx-0-1b5ea0cf07475444e638535177b4c2d8)
配置10-kubelet.conf文件,因为Node节点采用自动颁发证书的方式,所以此文件需要添加KUBELET_KUBECONFIG_ARGS参数,如果已经配置了,就无需再配置。
所有Node节点创建相关目录:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P53_57317.jpg?sign=1739334049-YGiEe1fU8JQGYb9N0JfoY76YpcvdWKZb-0-3ff767d8fad93b200ec96aa4b4a6c100)
所有Node节点配置Kubelet,如果Master节点也需要运行Pod(在生产环境中不建议,在测试环境中为了节省资源可以运行Pod),同样需要配置kubelet,Master节点和Node节点的kubelet配置唯一的区别是Master节点的--node-labels为node-role.kubernetes.io/master='',Node节点的为node-role.kubernetes.io/node=''。因为Master节点已经有证书,所以无需再次复制证书,直接创建kubelet的配置文件即可。Kubelet service文件如下:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P53_57318.jpg?sign=1739334049-EQB7laz9IibzGmh06xg73pg9B5gxsEwb-0-88d16c40c7b21a999da9f56e1329307f)
Kubelet Service参数文件如下:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P53_57319.jpg?sign=1739334049-smxHmVgc62B12aFGGtNB5ByNxAT7QOTn-0-6d87c1d156dabca483a155d7fcfc38f6)
配置Kubelet配置文件。注意clusterDNS的地址,如果之前修改了ClusterIP的网段,需要将ClusterDNS的地址改成同网段的地址:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P53_57320.jpg?sign=1739334049-dJHCsJe8dB3FuxDHmy71RJlkLjPtdErD-0-5e2c027a718a1ecb8410b7cee7502354)
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P54_57323.jpg?sign=1739334049-GueJM4UiNxEAuLDOPpSEnIBUkkIiLFaE-0-1fe470bc821319c8c7b286aef556fc0a)
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P55_57325.jpg?sign=1739334049-ANRXFKAPSrRo47OfRl1gzUxbjOBBOpsj-0-8be275dbe3fda421dfb1b8d82b8d2047)
所有节点启动kubelet,启动后会自动生成kubelet.kubeconfig文件,并且controller-manager会自动为kubelet颁发证书:
systemctl daemon-reload systemctl enable --now kubelet
查看集群状态:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P55_57327.jpg?sign=1739334049-XTYo016VgN0W1juOHh2bVlcDFatvDBYT-0-146f1456392cc290bbd48aff7cbd3469)
1.3.7 Kube-Proxy配置
Kube-Proxy用于实现Pod和Pod之间以及外部到Pod的访问,这些访问主要有三种实现方式,在部署过程中无须理会实现方式,具体原理请参考本书的2.2.13节。
以下介绍kube-Proxy的配置步骤。
创建Kube-Proxy的ServiceAccount:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P55_57329.jpg?sign=1739334049-bSLomi97TcZJxsb2YtgY0Co6iYjW0CSQ-0-17627df87ee49c2bb6ab6565f470adf9)
创建kube-proxy的kubeconfig:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P56_57331.jpg?sign=1739334049-TrIczqhHAPE1c1F0FLnHq5QpCVjw2uJI-0-e6a9658fe5c8a16044e4ccf5e521e975)
复制kube-proxy的文件至所有节点:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P56_57332.jpg?sign=1739334049-4A4jVbbD5zSJ0X5Aiyese4RGDnRZeyxp-0-08ca84f297f14ae3886489f4730c9d99)
所有节点启动kube-proxy:
systemctl enable --now kube-proxy
1.3.8 Calico配置
安装Calico,请参考1.2.3节,更改<your-pod-cidr>的值为上述创建的PodIP网段:
POD_CIDR="<your-pod-cidr>" \ sed -i -e "s?192.168.0.0/16?$POD_CIDR?g" calico/v3.6.1/calico.yaml
创建Calico:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P57_57336.jpg?sign=1739334049-hPZDTKu5ocavTJoiYngvcNw8HaYVGjUt-0-8b5ca52d8815c127e4d4b5de47fd06dd)
查看Calico Pods的状态:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P57_57337.jpg?sign=1739334049-eawzZ8pOkffLGb03VEX8EkOWi2UcAUP4-0-c59ec4b8783dab714158939b66a99ae4)
查看集群的状态,此时报错日志已解决:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P58_57340.jpg?sign=1739334049-MoWMEmaWpXVdEerDdK0A3fX6NBwpCIXO-0-972ca69de59fab1483db251a242e10f6)
1.3.9 CoreDNS的配置
CoreDNS用于集群中Pod解析Service的名字,Kubernetes基于CoreDNS用于服务发现功能。
安装CoreDNS 1.3.1版本(写本书时的最新版)。如果之前修改了PodIP的网段,需要自行修改此文件的ClusterIP参数:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P58_57341.jpg?sign=1739334049-N980BgOvRL6Ri8ZB2b5no3DEAPxHjgIW-0-1784102724d6be2dcfe27da32d23a183)
查看CoreDNS的Pods状态:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P58_57342.jpg?sign=1739334049-83TivVlD1uCzfLFWUvSxXsZE7Ztz4IwC-0-4dcaa7fc5146603ddcf072143bffd4b1)
解析测试:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P58_57343.jpg?sign=1739334049-RFydACqepwd5DGuWetJ9zCDNpSdc1ICJ-0-7f9a5b2a4a82deac5d9fbd97498c1459)
解析Kubernetes service:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P58_57344.jpg?sign=1739334049-SxC9SrpLFlwVhU0PDtMLOdfBet25srPz-0-a35072b7b086a1d8fc5ed5048da5aa11)
1.3.10 Metrics-Server配置
安装metrics-server:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P59_57347.jpg?sign=1739334049-2VD0MpziWkXsSV3BvahIf6ZUE5K849Yc-0-f0c1195e171089be97e411b562a258c0)
查看Pod状态:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P59_57348.jpg?sign=1739334049-67wQzTALmx7I5rwVMWdGKeeyKTAsIqw2-0-a63b91fa0bb724304c878030d5a0afab)
查看Node资源使用:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P59_57349.jpg?sign=1739334049-FnxdpmuoHp3XqpOQVscrpp7ywSZ12Dgv-0-aa6d181da6b705909c282b11f32da30b)
1.3.11 Dashboard配置
安装heapster:
[root@k8s-master01 1.2.1]# kubectl apply -f heapster/
安装Dashboard:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P59_57351.jpg?sign=1739334049-Q8AW77bI1My0YRoBYOiV5ua09vvSq7Sr-0-6f8cd287f2700ac4ad555f5f6b3f3d27)
查看Pod的状态:
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P60_57354.jpg?sign=1739334049-jeouBSMWxhqTIN4RNICoWog6Qfou4VzG-0-e41242d06545980234fcad003e412a42)
通过NodePort访问https://VIP:30000。
选择令牌,参考图1-4。
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P60_12496.jpg?sign=1739334049-4wHW8iWr4WiQCloaTBsVfNaqQjdDSzYK-0-b4347b7b9b2d9ab5667589dfadd5fa7a)
图1-4 Dashboard登录方式选择令牌
输入令牌(令牌获取参考1.1.9小节)后登录,即可登录到Dashboard页面,参考图1-5。
![](https://epubservercos.yuewen.com/62A1DF/15825992304144506/epubprivate/OEBPS/Images/Figure-P61_12508.jpg?sign=1739334049-NMUuPvonfvjCJdgU8xeZuuyDQi9A5xoJ-0-25ddfc06c518ed9be39d367e7088bbcc)
图1-5 Dashboard页面