Kubernetes1.15.2集群部署并部署Metrics Server插件
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,环境信息:操作系统主机名IP地址CentOS 7.6k8s-master192.168.31.61CentOS 7.6k8s-node1192.168.31.62CentOS 7.6k8s-node2
千家信息网最后更新 2025年02月04日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 --system
4. 所有节点安装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 docker
4.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.gpgEOF
4.3 安装kubeadm,kubelet和kubectl
指定版本号部署:
$ yum install -y kubelet-1.15.2 kubeadm-1.15.2 kubectl-1.15.2$ systemctl enable kubelet
5. 部署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 nodes
6. 安装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:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5
8. 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:
$ kubectl create deployment nginx --image=nginx$ kubectl expose deployment nginx --port=80 --type=NodePort$ kubectl get pod,svc
9. 部署 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安全错误
数据库的锁怎样保障安全
部队网络安全报告
数据库空间是什么
洛克希德马丁 网络安全
上海网络技术客户至上
网络安全攻击的主要方式
易语言数据库历程
校园局域网络技术选型
万德数据库导出不到exclel
软件开发服务费和技术服务费区别
网贷数据库怎么查询安全么
linux 建立数据库
ios手机软件开发
国泰民安服务器会火么
软件开发项目经理bsc
中央网络安全专家王大刚
数据库时间什么格式转换
互联网机器人与服务器
郑州中网网络技术有限公司
360 网络安全平台
网络安全法led屏
lol网一的服务器在哪
包头嵌入式软件开发招聘网
grails使用数据库
校园局域网络技术选型
游戏服务器源码
乒乓球软件开发
汕头潮阳区网络安全宣讲
杭州计算机网络技术
用友u8初始化不了数据库
网络安全的基本概念ppt