PVE 上 Debian 12 虚拟机部署 Kubernetes 1.31 简要记录

文章记录了在 PVE 虚拟机上部署 Kubernetes 1.31 集群的操作过程,包括环境准备,安装并配置 containerd 作为容器运行时,使用 kubeadm 初始化 Kubernetes 集群,并部署 Cilium 。最后,文章验证了集群功能并展示了如何删除集群。

使用 Helm 管理 K8s 集群中的应用

Helm 是一个 Kubernetes 的包管理工具,通过使用 Charts 描述 Kubernetes 资源的集合来管理和部署应用程序。Helm 3 相对于 Helm 2 提供了更好的安全性、稳定性和易用性。一个典型的 Chart 包含了部署一个应用所需的所有配置、依赖关系和相关资源。我们可以通过修改 Chart 中的配置文件和模板文件来自定义部署应用程序的方式。使用 Helm,我们可以轻松地管理和部署复杂的应用程序,并减少人工操作的错误和遗漏。我们可以通过编写脚本,从现有的 Kubernetes Deployment 配置中提取相应配置,并将其转换为 Helm Values 文件,从而实现自动化管理和部署。

Kubernetes 好用的管理软件/命令行工具

Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统。它提供了许多命令行工具和图形用户界面,用于管理和监控Kubernetes集群。其中一些常用的工具包括OpenLens(用于集群概览和资源监控)、K9s(用于实时监控和资源编辑)、kubecm(用于KubeConfig管理)、krew(用于插件管理)等。 这些工具提供了集群状态、资源监控、配置管理、事件和日志显示、可扩展性、集群拓扑、资源编辑、实时监控、快速导航、详细信息查看、KubeConfig管理、插件管理、节点调试、Pod监控、资源关系展示、状态显示、资源分配查看、镜像管理、命令执行、服务访问、Secret管理、网络流量捕获、Ingress管理、YAML文件格式化、日志跟踪等功能。 因此,Kubernetes集群的管理工具和命令行工具提供了丰富的功能,可帮助用户更轻松地管理和监控其Kubernetes环境。

K8s 中微服务优雅滚动更新

本文介绍了在 Kubernetes 中实现 Spring Cloud 微服务的优雅滚动更新。通过配置 Eureka 和 Ribbon 的参数来缩短服务注册信息的刷新间隔,并让网关在请求异常时重试一次。另外,通过设置 Pod 的 terminationGracePeriod 和 PreStop 钩子来主动下线旧版本的微服务,保证服务的平滑终止。最后,建议集成 Spring Cloud Kubernetes 来代替 Eureka,进一步提升服务升级的平滑度,实现无感知更新。

K8s Pod中应用如何获取客户端 IP

在 Kubernetes (K8s) 的 Pod 中运行的应用,想要获取客户端的真实 IP 地址信息,可以通过检查 "X-Original-Forwarded-For" 请求头来获取。在 K8s 集群中,请求经过 Ingress Controller 处理后,会将真实的客户端 IP 地址添加到该请求头中。因此,应用需要通过提取该请求头来获取客户端 IP 信息。需要注意的是,在 Ingress 资源中配置 "nginx.ingress.kubernetes.io/proxy-real-ip-cidr" 注解来启用对该请求头的支持。通过这种方式,应用可以准确获取到客户端的 IP 地址信息。

K8s Nginx Ingress 配置 Basic Auth 访问

为 K8s Nginx Ingress Controller 配置 HTTP Basic Auth,增强安全。首先使用 htpasswd 或 openssl 命令创建认证文件,然后创建 Secret,并将认证文件作为其值。最后,通过在 Ingress 中设置相应的注解来启用基本认证。成功应用后,访问 Ingress 对应的 URL 将需要输入用户名和密码。扩展:在 Nginx 配置文件中增加 auth_basic 和 auth_basic_user_file 指令以配置 Basic 认证。