Kubernetes 包管理工具之 Helm 使用
本文介绍了Helm作为Kubernetes包管理工具的基本使用方法,包括Chart仓库和Chart安装包的操作。对于Chart仓库,可以执行查看、添加、更新、移除以及搜索操作。在处理Chart安装包时,用户能够创建、打包、下载、检查及渲染Chart以生成YAML资源清单。此外,还详细讲解了如何通过Helm命令来管理Kubernetes上的应用程序实例(Release),如安装、列表查看、状态查询、升级、历史版本回查、回滚及卸载等步骤,每一步都提供了相应的命令示例与参数说明,帮助开发者高效地管理和部署Kubernetes应用。
Kubernetes 网络之 CoreDNS
CoreDNS 是一种采用 Golang 编写的、插件式的 DNS 服务器,自 Kubernetes 1.13 版本起成为其默认的 DNS 服务解决方案,主要用于集群内部的服务发现。它基于 Apache License Version 2 开源协议发布,并且是 CNCF 孵化并已毕业的项目。CoreDNS 的主要特点包括插件化架构、简化配置(通过 Corefile 文件)、与 Kubernetes 和 ETCD 集成的能力以及高度灵活性和性能优化等。配置示例展示了如何设置监听端口、错误处理、健康检查、Kubernetes 服务解析等功能。此外,还介绍了几种在 Kubernetes 中使用的 DNS 策略选项,如 Default、ClusterFirst、ClusterFirstWithHostNet 和 None,允许用户根据需要调整 Pod 的 DNS 解析行为。
Kubernetes 网络之 Pod 网络调试
本文介绍了在Kubernetes集群中对Pod进行网络调试的一种方法,以解决由于容器镜像中通常不包含ping、curl等工具导致的调试难题。主要使用了Linux命令行工具nsenter来进入Pod内容器的网络命名空间,从而能够利用宿主机上的网络调试工具完成任务。文章详细描述了整个调试过程,包括确认Pod所在节点、获取容器ID与PID、使用nsenter进入容器网络空间以及最终执行调试操作的具体步骤。此外,还列举了nsenter的一些常用参数及其功能,帮助读者更好地理解和应用该工具于实际场景中。
Kubernetes 网络之 Calico 插件安装、切换网络模式、卸载
本文介绍了通过Tigera Operator安装Calico插件的流程,包括安装Tigera Operator和Calico的具体步骤。Tigera Operator通过CRD对象为Calico提供生命周期管理。文章还详细说明了如何在不同网络模式(如IPIP、VXLAN、BGP和CrossSubnet)之间切换,每种模式下的配置修改及验证方法。最后,提供了卸载Calico的完整流程,包括删除资源对象、虚拟网卡、CNI配置文件以及重启kubelet服务。
Kubernetes 网络之 Calico 插件理论
Calico 是一个开源的网络及网络安全解决方案,主要用于容器、虚拟机和本地主机工作负载之间的网络连接。它以其高性能、灵活性和安全性而闻名,适用于需要高可扩展性和安全性的场景,支持多种平台如Kubernetes、OpenShift等。Calico 支持Linux eBPF、标准网络和Windows HNS等多种数据层,并内置Wireguard加密保护Pod间流量。其核心组件包括Felix(节点代理)、ETCD(存储集群路由信息)、BIRD(BGP客户端)以及BGP Route Reflector等。Calico提供两种主要网络模式:动态路由模式(基于BGP协议)和覆盖网络模式(IPIP或VXLAN协议)。其中,动态路由模式适合同一二层网络中的大规模集群;覆盖网络模式则适用于跨不同二层网络的场景,通过封装技术确保通信性能。
etcd 常用命令
本文介绍了在使用 kubeadm 安装的 Kubernetes 集群中,如何通过命令行操作 etcd,包括查询和备份恢复等操作。首先,通过一系列命令获取当前 Master 节点主机名称、etcd pod 名称及证书目录路径。接着,文章详细列出了几个常用的查询命令,如查询 etcd 集群成员信息、状态信息(包括版本号和leader)、健康状况以及特定键值对的内容。此外,还提供了备份 etcd 数据至指定目录的方法。对于数据恢复,文章给出了三种不同的方法:当 etcd pod 正常运行时直接恢复、停止服务后进行恢复以及在前两种方法均失败情况下的应急处理方案。每种恢复方式都配有具体的操作步骤说明,以帮助用户根据实际情况选择最适合的恢复策略。
Kubernetes 网络之概念总览
本文是对Kubernetes网络相关概念的总体梳理,旨在为后续深入学习打下基础。文章首先介绍了OSI七层模型和TCP/IP四层模型,接着详细解释了网络数据包的结构及其传输过程。随后,文章探讨了IP路由、网络地址转换(NAT)、网络命名空间等关键概念,并介绍了CIDR、虚拟以太网设备对(veth-pair)、网桥等技术在容器网络中的应用。此外,还讲解了CNI、VIP、iptables、ipvs、netfilter等Kubernetes中常见的网络组件和技术。最后,文章讨论了底层网络与覆盖网络的区别,以及VXLAN等隧道协议的工作原理。通过这些概念的介绍,读者可以更好地理解Kubernetes网络的实现机制。
Kubernetes 安全机制之 Security Context
本文介绍了Kubernetes中的Security Context,这是一种重要的安全机制,通过定义Pod或容器的权限来增强安全性。Security Context包括多种配置字段,如AllowPrivilegeEscalation、appArmorProfile、capabilities等,用于控制容器运行时的各种安全设置。文章提供了为Pod和容器设置Security Context的具体示例,并详细解释了这些配置的作用。例如,通过`runAsUser`可以指定容器内进程的用户ID,而`privileged`则允许容器以特权模式运行。此外,还强调了容器级别的Security Context优先级高于Pod级别,在存在冲突时会覆盖Pod的设置。