胡伟煌

个人博客

kubeadm升级k8s集群

本文主要说明如何使用kubeadm来升级k8s集群。 1. 版本注意事项 假设k8s的版本格式为x.y.z,那么使用kubeadm最多只能升级到y+1版本,或者是当前y版本的最新版本。例如你k8s集群的版本为1.24.x,那么你最大版本只能下载1.25.x的kubeadm来升级版本。 因此升级前需要执行以下命令来验证可升级的版本。 1kubeadm upgrade plan 1.1. 版本跨......

k8s版本记录

1.27 参考: Kubernetes 在 v1.27 中移除的特性和主要变更 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260 202304 | K8s 1.27 正式发布 - DaoCloud Enterprise (......

如何开发一个Operator

开发一个k8s operator组件主要会用到以下几个仓库或工具: kubebuilder/operator-sdk:主要用于创建CRD对象。 controller-manager:主要用于实现operator的controller逻辑。 本文以kubebuilder的工具和controller-manager example为例。 1. 准备工具环境及创建项目 安装kubebu......

金丝雀发布

Deployment配置金丝雀发布 金丝雀发布是指控制更新过程中的滚动节奏,通过“暂停”(pause)或“继续”(resume)更新发布操作。通过一小部分的版本发布实例来观察新版本是否有异常,如果没有异常则依次发布剩余的实例。 1. 设置发版节奏 主要是以下字段的设置: maxSurge:最大发版实例数,可以创建的超出期望 Pod 个数的 Pod 数量。可以是百分比或者是数字。 maxUn......

OpenYurt之TunnelServer源码分析

本文以commit id:180282663457080119a1bc6076cce20c922b5c50, 对应版本tag: v1.2.1 的源码分析tunnel-server的实现逻辑。 1. Tunnel-server简介 云与边一般位于不同网络平面,同时边缘节点普遍位于防火墙内部,采用云(中心)边协同架构,将导致原生 K8s 系统的运维监控能力面临如下挑战: K8s 原生运维能......

Grafana部署

Docker部署 1docker run -d -p 3000:3000 grafana/grafana:latest K8S部署 helm部署 123helm repo add grafana https://grafana.github.io/helm-chartshelm search repo grafana 参考: Install Grafana | Grafana docum......

kube-prometheus-stack的使用

1. kube-prometheus-stack简介 kube-prometheus-stack是prometheus监控k8s集群的套件,可以通过helm一键安装,同时带有监控的模板。 各组件包括 grafana kube-state-metrics prometheus alertmanager node-exporter 2. 安装kube-prometheus-stack 执行以......

OpenYurt之Tunnel-Agent源码分析

1. Tunnel-Agent简介 tunnel-agent是通过daemonset部署在每个worker节点,通过grpc协议与云端的tunnel-server建立连接。以下分析tunnel-agent的源码逻辑。 常用的启动参数: 1234567- args: - --node-name=$(NODE_NAME) - --node-ip=$(POD_IP) - --tunnelse......

kubeconfig的使用

1. kubeconfig说明 默认情况下,kubectl 在 $HOME/.kube 目录下查找名为 config 的文件。 你可以通过设置 KUBECONFIG 环境变量或者设置 --kubeconfig参数来指定其他 kubeconfig 文件。 kubeconfig内容示例: 以下证书以文件的形式读取。 12345678910111213141516171819apiVersion:......

OpenYurt之YurtHub源码分析

本文分析yurthub源码,第一部分。 本文以commit id:180282663457080119a1bc6076cce20c922b5c50, 对应版本tag: v1.2.1 的源码分析yurthub的实现逻辑。 yurthub是部署在每个边缘节点上用来实现边缘自治的组件。在云边通信正常的情况下实现apiserver的请求转发,断网的情况下通过本地的缓存数据保证节点上容器的正常运行......