Kubernetes
如何升级 Kubernetes 集群
· ☕ 1 分钟
升级思路是,驱逐负载、摘除流量之后,先升级控制节点,后升级工作节点。 1. 查看集群版本 1 2 3 4 kubectl version Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T17:57:25Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"} 当前版本是 1.22,由于 kubeadm 不允许跨版本升级,这里准备升级到 1.23 。 2. 添加 Kubernetes 安装源 CentOS 操作系统: 1 2 3 4 5 6 7

如何在 Kubernetes Pod 中注入环境变量及优先级问题
· ☕ 2 分钟
1. Kubernetes Pod 引用环境变量的几种方式 1.1 直接 Key/Value 可以直接设置 Value 值,也可以将当前 Pod 的信息作为 Value 值。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 apiVersion: v1 kind: Pod metadata: name: envar-demo labels: purpose: demonstrate-envars spec: containers: - name: envar-demo-container image: gcr.io/google-samples/node-hello:1.0 env: - name: DEMO_GREETING value: "Hello from the environment" - name: DEMO_FAREWELL value: "Such a sweet sorrow" - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name 1.2 从 Secret 引用 有两

给 Kubernetes 集群新增外部 DNS 服务
· ☕ 1 分钟
1. 给主机添加 DNS 1.1 CentOS 第一种方法: /etc/resolv.conf 管理 DNS 禁用 NetworkManager 如果不禁用 NetworkManager,在重启 NetworkManager 组件之后,直接在 /etc/resolv.conf 中添加的 DNS 记录会丢失。 1 2 3 4 vim /etc/NetworkManager/NetworkManager.conf [main] dns=none 在 [main] 部分添加 dns=none。 此时重启 NetworkManager,对已经添加到 /etc/resolv.conf 的记录无影

几种开源的 Kubernetes Web 端管理工具
· ☕ 2 分钟
最近在调研开源的 Kubernetes 管理平台,需求是能够管理内网的上百个集群。功能定位是辅助运维、向应用层提供能力,而非直接面向终端用户。 1. Kubernetes Dashboard 项目地址: https://github.com/kubernetes/dashboard 技术栈:Angular + Go 关键字: 单集群 K8s 资源管理 2. Kuboard 项目地址: https://github.com/eip-work/kuboard-press 技术栈:Vue 关键字: 多集群 K8s 资源管

常用的清理 Kubernetes 集群资源命令
· ☕ 2 分钟
长时间运行的集群,常会面临各种资源耗尽的问题,另外磁盘不足时 Kubelet 还会主动清理镜像增加不确定因素,本文提供了一些命令片段用于清理工作。 1. Kubernetes 基础对象清理 清理 Evicted 状态的 Pod 1 sudo kubectl get pods --all-namespaces -o wide | grep Evicted | awk '{print $1,$2}' | sudo xargs -L1 kubectl delete pod -n 清理 Error 状态的 Pod 1 sudo kubectl get pods --all-namespaces -o wide | grep