Kubernetes1.15.2集群部署并部署Metrics Server插件
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,环境信息:操作系统主机名IP地址CentOS 7.6k8s-master192.168.31.61CentOS 7.6k8s-node1192.168.31.62CentOS 7.6k8s-node2
千家信息网最后更新 2025年12月02日Kubernetes1.15.2集群部署并部署Metrics Server插件
环境信息:
| 操作系统 | 主机名 | IP地址 |
|---|---|---|
| CentOS 7.6 | k8s-master | 192.168.31.61 |
| CentOS 7.6 | k8s-node1 | 192.168.31.62 |
| CentOS 7.6 | k8s-node2 | 192.168.31.63 |
1. 安装要求
在开始之前,部署Kubernetes集群机器需要满足以下几个条件:
- 操作系统 CentOS7.x-86_x64
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
- 禁止swap分区
2. 学习目标
- 在所有节点上安装Docker和kubeadm
- 部署Kubernetes Master
- 部署容器网络插件
- 部署 Kubernetes Node,将节点加入Kubernetes集群中
- 部署Dashboard Web页面,可视化查看Kubernetes资源
3. 准备环境
关闭防火墙:$ systemctl stop firewalld$ systemctl disable firewalld关闭selinux:$ sed -i 's/enforcing/disabled/' /etc/selinux/config $ setenforce 0关闭swap:$ swapoff -a 临时$ sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 永久添加主机名与IP对应关系(记得设置主机名):$ cat /etc/hosts192.168.31.61 k8s-master192.168.31.62 k8s-node1192.168.31.63 k8s-node2将桥接的IPv4流量传递到iptables的链:$ cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1EOF$ sysctl --system4. 所有节点安装Docker/kubeadm/kubelet
4.1 安装Docker
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo$ yum -y install docker-ce$ systemctl enable docker && systemctl start docker4.2 添加阿里云YUM软件源
$ cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF4.3 安装kubeadm,kubelet和kubectl
指定版本号部署:
$ yum install -y kubelet-1.15.2 kubeadm-1.15.2 kubectl-1.15.2$ systemctl enable kubelet5. 部署Kubernetes Master
在192.168.31.63(Master)执行。
$ kubeadm init \ --apiserver-advertise-address=192.168.31.61 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.15.2 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。
使用kubectl工具:
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config$ kubectl get nodes6. 安装Pod网络插件(CNI)
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml确保能够访问到quay.io这个registery。
如果下载失败,可以改成这个镜像地址:lizhenliang/flannel:v0.11.0-amd64
7. 加入Kubernetes Node
在192.168.31.62/63(Node)执行。
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:
$ kubeadm join 192.168.31.61:6443 --token esce21.q6hetwm8si29qxwn \ --discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c58. 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:
$ kubectl create deployment nginx --image=nginx$ kubectl expose deployment nginx --port=80 --type=NodePort$ kubectl get pod,svc9. 部署 Dashboard
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml默认镜像国内无法访问,修改镜像地址为: lizhenliang/kubernetes-dashboard-amd64:v1.10.1
默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部:
kind: ServiceapiVersion: v1metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-systemspec: type: NodePort ports: - port: 443 targetPort: 8443 nodePort: 30001 selector: k8s-app: kubernetes-dashboard$ kubectl apply -f kubernetes-dashboard.yaml访问地址:http://NodeIP:30001
创建service account并绑定默认cluster-admin管理员集群角色:
$ kubectl create serviceaccount dashboard-admin -n kube-system$ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin$ kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')使用输出的token登录Dashboard。
Kubernetes集群安装Metrics Server
$ git clone https://github.com/kubernetes-incubator/metrics-server下载完成后还需要对 metrics-server/deploy/1.8+/resource-reader.yaml文件进行修改##官方仓库中的清单文件metrics-server-deployment.yaml中未明确主程序metrics-server传递参数指定指标数据的获取接口,它通常应该是kubernetes.summary_api image: registry.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.3 args: - --kubelet-insecure-tls - --kubelet-preferred-address-types=InternalIP修改完之后即可直接使用
$ kubectl apply -f deploy/metrics-server/deploy/1.8+/查看pod是否为Running状态
$ kubectl get pod -n kube-system查看节点,POD资源监控
kubectl top nodekubectl top pods -n kube-system

参考李振良老师的博客:https://blog.51cto.com/lizhenliang/2296100
集群
地址
镜像
节点
主机
更多
网络
插件
操作系统
仓库
文件
机器
环境
系统
资源
阿里
输出
主程序
之间
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
用什么写数据库
网络安全最牛的上市公司
网络 监控 视频服务器
济南名云网络安全公司
贵州项目软件开发排行榜
x58服务器安装ghost系统
网络技术与通信
网络安全考研要考什么
吉林友软件开发
数据库赚钱是真的吗
t1商贸宝找不到数据库
苏州小程序软件开发教程
风暴王子首杀是哪个服务器
苏州戴尔服务器维修期限
数据库服务器管理系统
Java服务器管理客户端
虹口区机电软件开发推荐厂家
天津数据网络技术
ef6支持哪些数据库
plsql无法检测到数据库
报废服务器文档
网络 监控 视频服务器
河北什么是网络技术推广
软件开发西安待遇
软件开发跟固态硬盘
安卓 软件开发 手机
计算机和网络技术论文
数据库如何全部导出
网络安全法制教育实验小学
我的世界服务器时间变量