Kubernetes学习周报(第三期 ): Kubernetes 健康检查; 如何使用 runc 生成容器;简化Kubernetes 开发过程工具指南

174 阅读6分钟

Kubernetes 健康检查:深入Liveness and Readiness Probe

Image

medium.com/@sachinadi4…

本文介绍了 Kubernetes 中活动和就绪探测的概念,它们是 Kubernetes 对应用程序 Pod 执行的运行状况检查,以确保它们正在运行并准备好接收流量。它讨论了两种类型的探测器之间的差异、它们的工作原理以及配置它们的最佳实践。

关键点

    • 存活探测检查应用程序是否仍在运行,如果存活探测失败,Kubernetes 将重新启动 Pod。
    • 就绪性探测检查应用程序是否准备好接收流量,如果就绪性探测失败,Kubernetes 将从服务负载均衡器中删除 Pod。
    • 有三种类型的探测器:HTTP、TCP 和 exec 探测器,HTTP 探测器是大多数应用程序的常见选择。
    • 配置探测器的最佳实践包括选择正确的探测器类型、设置适当的阈值、选择正确的探测器终结点,以及使用探测器延迟允许容器在探测器开始之前启动。

              


(零成本)GitOps 管道中的 Kubernetes 资源优化  

itnext.io/zero-cost-k…

本文讨论了 Kubernetes 资源管理的挑战,例如过度预配资源、浪费宝贵的配额或阻止部署。它使用开源工具和脚本提供解决方案,以帮助分析资源配额利用率,自动生成资源请求建议,并将建议集成到 GitOps 管道中。

关键点

    • Kubernetes 资源管理涉及资源配额和 Pod 请求和限制,这可能会导致一些挑战,例如寻找最佳配额设置、避免过度配置以及与各种团队交互以调整配额设置。
    • 由于达到资源配额限制,可能会发生部署延迟,这可以通过了解资源配额如何与部署策略交互来缓解。
    • 初始资源分配通常是猜测,本文建议使用 Vertical Pod Autoscaler (VPA) 根据监控 Pod 使用情况自动生成资源请求建议。
    • 本文提供了用于检查资源配额利用率和生成 VPA 建议的脚本,并讨论了如何将这些建议集成到 GitOps 管道中。
    • 本文还提到了其他商业解决方案,以便更深入地了解应用程序使用和资源调优建议。

                    


简化 Kubernetes 开发过程:您的首选工具指南  

semaphoreci.com/blog/kubern…

本文全面分析和比较了六种流行的现代 Kubernetes 本地开发工具:Skaffold、Tilt、Telepresence、Okteto、Docker Compose 和 Garden。它讨论了每种工具的功能、优势和局限性,以帮助开发人员选择最符合其特定要求和开发工作流程的工具。

关键点

    • Skaffold 可自动执行 Kubernetes 应用程序的开发工作流程,为本地开发和 CI/CD 提供全面的解决方案。
    • Tilt 通过用户友好的 UI 增强了 Kubernetes 开发人员的体验,但对于更复杂的部署,可能需要额外的设置。
    • 网真使开发人员能够在本地运行单个服务,同时将其连接到远程 Kubernetes 集群,从而简化开发过程。
    • Okteto 将内部开发循环转移到集群,通过同步本地和远程环境提供无缝的开发体验。
    • Docker Compose 虽然不是为 Kubernetes 设计的,但可用于定义和运行多容器应用程序,但可能无法准确表示生产环境。
    • Garden 简化了云原生开发环境的设置过程,但与其他工具相比,学习曲线更陡峭。

          


Kubernetes Secret配置管理  

medium.com/squareops/t…

本文讨论了在 Kubernetes 环境中安全管理敏感配置和密钥的重要性,以及将 AWS Secrets Manager 与 External-Secrets Operator 和 Config-Reloader 结合使用如何提供强大的解决方案。

关键点

    • 需要安全配置和机密管理,以防范外部威胁和内部风险。
    • Kubernetes 原生密钥管理的局限性,包括有限的访问控制、密钥类型、加密选项和审计功能。
    • 使用 AWS Secrets Manager 克服这些限制并提供增强的安全功能。
    • 有关设置 EKS 集群、安装 External-Secrets Operator 和 Config-Reloader 以及与 AWS Secrets Manager 集成的分步指南。
    • 演示如何在 AWS Secrets Manager 中动态更新密钥,以及如何将更改自动反映在正在运行的应用程序中。

如何在 Openshift 集群中创建服务   

medium.com/@rishabhsva…

本文深入解释了如何在 OpenShift 集群中创建 Service 以公开 Pod 列表。它讨论了 OpenShift 中的不同网络(Pod 网络、服务网络和主机网络),以及 OpenShift SDN(软件定义网络)如何处理 Pod 和外部网络之间的网络。本文还介绍了 kube-proxy 在管理将连接转发到服务端点的规则中的作用。它演练了使用模板创建服务的过程,然后检查为处理服务和 Pod 之间的网络流量而创建的 iptables 规则。

关键点

    • OpenShift 有不同的网络:Pod 网络、服务网络和主机网络。
    • OpenShift SDN 是 OpenShift 4.13 中默认的 CNI(容器网络接口)提供程序,用于处理 Pod 的网络。
    • kube-proxy 负责管理将连接转发到服务端点的规则。
    • 使用模板创建服务,该模板将单个端点后面的 Pod 抽象化。
    • iptables 规则用于处理 Service 和 Pod 之间的网络流量,包括负载均衡和伪装。

          


Helm Subcharts 如何轻松地迁移到 Argo Rollouts  

Image     

faun.pub/how-helm-su…

关键点

    • Argo Rollouts 是用于管理 Kubernetes 上高级部署策略的流行工具。
    • 迁移到 Argo Rollouts 有两种路径:使用 Rollout 覆盖现有 Deployment 或将新 Rollout 对象指向现有 Deployment。使用 Helm 子图的第二种方法是首选方法。
    • 平台工程团队可以使用 Argo Rollouts CRD 维护一个集中的 Helm Chart,允许服务所有者通过将子图表添加到其现有Chart中来轻松加入。这种方法提供了灵活性、可扩展性和更轻松的配置。

              

Image


如何使用 runc 生成容器    

Image          

medium.com/@rishabhsva…

本文讨论了如何使用 runc 运行时生成 OCI(开放容器计划)捆绑包并生成容器。它涵盖以下关键点:

关键点

    • 可以使用 skopeo 命令行实用程序生成 OCI 映像布局规范。这将创建一个包含 Blob、配置文件和 index.json 文件的目录结构。
    • 可以使用 umoci 工具从 OCI 映像布局生成 OCI 捆绑包。捆绑包包含一个config.json文件和容器的根文件系统。
    • 通过提供生成的 OCI 包,可以使用 runc 运行时生成容器。需要对 config.json 文件进行一些配置更改,例如将“terminal”设置为 false 并删除“user”部分。

加入知识星球,共同探索云原生学习之旅!

Image

更多K8S学习资料以及SRE学习手册,请扫码关注哦!

Image

原文请关注 WX 公众号 “云原生SRE”