当前位置: 首页 > news >正文

Kubernetes 1.18.6集群部署后,别忘了做这5件事:Dashboard访问、Metrics-Server配置与集群健康检查

Kubernetes 1.18.6集群部署后的5项关键运维操作

当你完成Kubernetes 1.18.6集群的基础部署后,真正的运维工作才刚刚开始。一个健康的集群不仅需要正确安装,还需要进行一系列配置和验证才能投入生产使用。本文将带你完成集群部署后的5项关键操作,确保你的集群功能完整、运行稳定。

1. 配置并安全访问Dashboard

Dashboard是Kubernetes官方提供的Web UI,它让你能够直观地查看和管理集群资源。但默认安装后,我们需要进行一些安全配置才能正常使用。

首先,确保Dashboard已经正确安装。运行以下命令检查Dashboard Pod的状态:

kubectl get pods -n kubernetes-dashboard

如果状态不是"Running",你可能需要检查日志排查问题:

kubectl logs -n kubernetes-dashboard <pod-name>

创建管理员账号和权限

默认情况下,Dashboard使用最小权限运行。我们需要创建一个具有适当权限的服务账号:

apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: dashboard-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kubernetes-dashboard

将上述内容保存为dashboard-admin.yaml并应用:

kubectl apply -f dashboard-admin.yaml

获取访问令牌

获取刚创建的服务账号的访问令牌:

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

复制输出的token内容,它将用于Dashboard登录。

安全访问Dashboard

默认情况下,Dashboard只监听集群内部。我们可以通过端口转发安全地访问它:

kubectl proxy

然后通过浏览器访问:

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

注意:生产环境中,你应该考虑配置Ingress和TLS证书来安全地暴露Dashboard,而不是使用简单的端口转发。

2. 安装Metrics-Server实现资源监控

Metrics-Server是集群资源使用数据的聚合器,它为Horizontal Pod Autoscaler和Dashboard等组件提供基础数据。

安装Metrics-Server

创建以下配置文件metrics-server.yaml

apiVersion: v1 kind: ServiceAccount metadata: name: metrics-server namespace: kube-system --- apiVersion: apps/v1 kind: Deployment metadata: name: metrics-server namespace: kube-system labels: k8s-app: metrics-server spec: selector: matchLabels: k8s-app: metrics-server template: metadata: name: metrics-server labels: k8s-app: metrics-server spec: serviceAccountName: metrics-server containers: - name: metrics-server image: k8s.gcr.io/metrics-server/metrics-server:v0.4.1 args: - --kubelet-insecure-tls - --kubelet-preferred-address-types=InternalIP ports: - containerPort: 443 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: metrics-server namespace: kube-system labels: k8s-app: metrics-server spec: selector: k8s-app: metrics-server ports: - port: 443 protocol: TCP targetPort: 443 --- apiVersion: apiregistration.k8s.io/v1 kind: APIService metadata: name: v1beta1.metrics.k8s.io spec: service: name: metrics-server namespace: kube-system group: metrics.k8s.io version: v1beta1 insecureSkipTLSVerify: true groupPriorityMinimum: 100 versionPriority: 100

应用配置:

kubectl apply -f metrics-server.yaml

验证安装

等待几分钟后,运行以下命令验证Metrics-Server是否正常工作:

kubectl top nodes kubectl top pods -A

如果看到节点和Pod的资源使用数据,说明安装成功。

常见问题排查

如果Metrics-Server无法正常工作,检查以下方面:

  1. 查看Metrics-Server日志:

    kubectl logs -n kube-system deployment/metrics-server
  2. 确保节点上的kubelet正确配置了只读端口(10255)或认证端口(10250)

  3. 检查网络连接,确保Metrics-Server可以访问各节点的kubelet

3. 验证Pod网络(Calico/Flannel)工作状态

网络是Kubernetes集群的核心组件,必须确保Pod之间可以正常通信。

基本网络测试

创建一个测试Deployment:

apiVersion: apps/v1 kind: Deployment metadata: name: network-test labels: app: network-test spec: replicas: 2 selector: matchLabels: app: network-test template: metadata: labels: app: network-test spec: containers: - name: busybox image: busybox command: ["sh", "-c", "sleep 3600"]

应用并获取Pod信息:

kubectl apply -f network-test.yaml kubectl get pods -o wide

跨节点网络测试

从其中一个Pod ping另一个Pod(确保它们在不同节点上):

kubectl exec <pod1-name> -- ping <pod2-ip>

检查网络插件状态

根据你使用的网络插件(Calico或Flannel),检查其组件状态:

对于Calico:

kubectl get pods -n kube-system -l k8s-app=calico-node

对于Flannel:

kubectl get pods -n kube-system -l app=flannel

网络策略测试

创建一个拒绝所有入站流量的NetworkPolicy来测试网络策略是否生效:

apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-ingress spec: podSelector: {} policyTypes: - Ingress

应用后,测试之前的ping操作应该会失败,证明网络策略生效。

4. 检查节点状态与核心组件健康

一个健康的Kubernetes集群需要所有节点和核心组件正常运行。

检查节点状态

kubectl get nodes

每个节点的状态应该是"Ready"。如果有节点不是Ready状态,使用以下命令查看详情:

kubectl describe node <node-name>

检查核心组件

Kubernetes的核心组件运行在kube-system命名空间下:

kubectl get pods -n kube-system

确保以下关键组件正常运行:

  • kube-apiserver
  • kube-controller-manager
  • kube-scheduler
  • etcd
  • kube-proxy
  • CoreDNS
  • 网络插件(Calico/Flannel)

组件日志检查

如果发现任何组件有问题,查看其日志:

kubectl logs -n kube-system <pod-name>

对于多实例组件(如etcd),确保所有实例健康:

kubectl exec -n kube-system etcd-<node-name> -- etcdctl endpoint health

系统资源检查

确保节点有足够资源运行工作负载:

kubectl top nodes

关注CPU、内存使用情况,特别是kube-system命名空间下的系统Pod资源使用。

5. 基础kubectl命令验证集群功能

最后,我们需要通过一系列kubectl命令验证集群的基本功能是否正常。

命名空间操作

# 创建测试命名空间 kubectl create namespace test # 查看所有命名空间 kubectl get namespaces # 删除测试命名空间 kubectl delete namespace test

Deployment操作

# 创建测试Deployment kubectl create deployment nginx-test --image=nginx # 查看Deployment状态 kubectl get deployment nginx-test # 扩展Deployment kubectl scale deployment nginx-test --replicas=3 # 删除Deployment kubectl delete deployment nginx-test

Service操作

# 创建Service kubectl create service clusterip my-service --tcp=80:80 # 查看Service kubectl get service my-service # 删除Service kubectl delete service my-service

持久化存储测试

# 创建PVC cat <<EOF | kubectl apply -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi EOF # 查看PVC状态 kubectl get pvc test-pvc # 删除PVC kubectl delete pvc test-pvc

集群信息查看

# 查看集群信息 kubectl cluster-info # 查看kubectl配置 kubectl config view # 检查kubectl连接 kubectl version --short

完成以上5项关键操作后,你的Kubernetes 1.18.6集群就已经具备了基本的生产可用性。这些步骤确保了集群的可视化管理、监控能力、网络连通性、组件健康状态和基本功能验证。在实际生产环境中,你还需要考虑配置日志收集、监控告警、备份策略等高级运维功能。

http://www.jsqmd.com/news/713561/

相关文章:

  • Zotero 7 升级后插件失效?别慌!手把手教你搞定新版护眼模式和翻译插件(附Zotero6兼容方案)
  • 2026最新高一数学跟不上辅导培训机构推荐!国内权威榜单发布,陕西西安等地优质机构实力上榜 - 十大品牌榜
  • 2026年SUPROME厂家口碑推荐:SUPROME厂怎么选/SUPROME厂家找哪家/SUPROME牌子评测 - 品牌策略师
  • 国内外第一梯队的温度传感器厂家有哪些?内附选型指南 - 仪表人小余
  • 如何快速清理微信单向好友:WechatRealFriends完整检测指南
  • 基于微信小程序的一站式校园缴费平台设计与实现
  • 手把手教你用IPMI远程搞定ESXi 8.0安装,告别实体机前傻等
  • 2026青海防静电地板供货厂家权威TOP5 - 深度智识库
  • 2026年银川高端铝合金门窗深度横评:派雅门窗如何定义深舒适人居标准 - 精选优质企业推荐官
  • 近三十载深耕铸就移民行业标杆,资源矩阵引领身份规划新时代 - 品牌排行榜
  • 观澜社张庆:用“社区茶话会”织就邻里温情网
  • LeetCode Bellman-Ford 算法题解
  • 从混乱网页到整洁笔记:MarkDownload让知识管理变得如此简单
  • 2026年,口碑爆棚的滁州居间金服,究竟哪个才值得你信赖? - GrowthUME
  • 揭秘!黄埔食堂肉菜配送背后的优质服务与新鲜秘诀 - GrowthUME
  • 2026年:如何快速降低论文AIGC率? - 降AI实验室
  • 邮件系统中的区块链技术应用:安全与合规性
  • 库卡机器人自动运行配置
  • 3步搞定Windows风扇噪音:FanControl免费工具完全指南
  • STM32新手避坑指南:当LED灯乱闪,先检查LCD是不是‘抢’了你的GPIO(以G431RBT6为例)
  • 沃尔玛购物卡回收渠道推荐 - 抖抖收
  • 2026年,专业莒县居间金服服务商将如何引领金融服务新风潮? - GrowthUME
  • 从高端化工到智慧化工:2026 温度传感器top10品牌实力榜与行业应用指南 - 仪表人小余
  • AI 营销公司怎么选?OmniSight AI 核心能力全拆解
  • Rufus深度解析:2026年最全U盘启动盘制作指南 - PC修复电脑医生
  • 轻量级系统监控工具Amon:部署、配置与生产实践指南
  • 新手必看!BUUCTF Misc杂项解题保姆级复盘(附常用工具链与避坑指南)
  • 探秘黄埔饭堂!新鲜食材配送背后藏着哪些不为人知的秘密? - GrowthUME
  • 2026 年近期温州编程竞赛机构深度测评:从新课标落地到信奥升学路径全解析 - GrowthUME
  • 2026 国内头部 GEO 厂商拆解:多维度剖析服务商核心竞争力与行业优势 - 速递信息