kube-dns
简介
从 Kubernetes v1.3 版本开始,集群会通过 cluster add-on 插件管理器自动启动内置的 DNS 服务。
说明:自 Kubernetes v1.12 起,CoreDNS 已取代 kube-dns 成为默认的集群 DNS 插件。本文介绍的是早期 kube-dns 方案,新集群建议使用 CoreDNS。
从 Kubernetes v1.3 版本开始,集群会通过 cluster add-on 插件管理器自动启动内置的 DNS 服务。
说明:自 Kubernetes v1.12 起,CoreDNS 已取代 kube-dns 成为默认的集群 DNS 插件。本文介绍的是早期 kube-dns 方案,新集群建议使用 CoreDNS。
CRD 的全称是 CustomResourceDefinition,是 Kubernetes 为提高可扩展性、让开发者自定义资源(如 Deployment、StatefulSet 等)的一种方法。
Kubernetes Gateway API 是 Kubernetes 社区(SIG-Network)在原有 Ingress 基础上设计的一套全新流量入口 API 规范,项目最早以 service-apis 的名义于 2019 年作为沙箱项目启动,后更名为 Gateway API。它以 CRD 形式安装到集群中,并不随 Kubernetes 核心版本直接发布。相比 Ingress,Gateway API 定位为下一代入口 API,提供了更丰富的能力:支持 HTTP 之外更多协议(如 TCP、UDP、TLS、gRPC 等),具备更强的扩展性,可以通过 CRD 灵活新增特定的 Gateway 类型(例如 AWS Gateway、Envoy Gateway 等),并支持更细粒度的流量路由规则,可以精确到服务级别;而 Ingress 的最小路由单元通常是路径,主要面向 HTTP 流量。
这是一张由外向内的典型的容器网络架构图。

为了能够正常通信,图中每个参与通信的实体都需要有一个 IP 地址,由集群外部到集群内部:
| IP类型 | 说明 |
|---|---|
| Proxy-IP | 代理层公网地址IP,外部访问应用的网关服务器。[实际需要关注的IP] |
| Service-IP | Service的固定虚拟IP,Service-IP是内部,外部无法寻址到。 |
| Node-IP | 容器宿主机的主机IP。 |
| Container-Bridge-IP | 容器网桥(docker0)IP,容器的网络都需要通过容器网桥转发。 |
| Pod-IP | Pod的IP,等效于Pod中网络容器的Container-IP。 |
| Container-IP | 容器的IP,容器的网络是个隔离的网络空间。 |
先来看最简单的情况, 即同一个Pod内部容器之间的通信:
cron 是类 Unix 系统中基于时间的任务调度器,守护进程 crond(在 Debian/Ubuntu 上叫 cron)每分钟扫描一次 crontab 表,匹配到当前时间就触发对应命令。它的用途非常广泛:定期备份、日志轮转、证书续期、数据同步、健康检查……几乎所有"每隔一段时间就要跑一遍"的需求都可以交给它。这篇文章梳理 crontab 的表达式语法、常用命令、系统级目录约定,以及生产环境里最容易踩到的坑。