kube-dns

从 Kubernetes v1.3 版本开始,集群会通过 cluster add-on 插件管理器自动启动内置的 DNS 服务。

说明:自 Kubernetes v1.12 起,CoreDNS 已取代 kube-dns 成为默认的集群 DNS 插件。本文介绍的是早期 kube-dns 方案,新集群建议使用 CoreDNS

Kubernetes Gateway API 简介

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 流量。

kubernetes 网络技术与服务通信

K8s 是一个开源的容器编排平台,用来自动化部署、管理容器化的应用程序, Bcs 是腾讯开源的容器管理平台。后者相较于前者,功能要更丰富些,bcs主要聚焦于复杂应用场景下的容器化应用的部署和整合, 除了兼容原生的的K8s外,对于游戏的这种场景提供了特别的适配。

kubernetes 网络模型

这是一张由外向内的典型的容器网络架构图。

为了能够正常通信,图中每个参与通信的实体都需要有一个 IP 地址,由集群外部到集群内部:

IP类型说明
Proxy-IP代理层公网地址IP,外部访问应用的网关服务器。[实际需要关注的IP]
Service-IPService的固定虚拟IP,Service-IP是内部,外部无法寻址到。
Node-IP容器宿主机的主机IP。
Container-Bridge-IP容器网桥(docker0)IP,容器的网络都需要通过容器网桥转发。
Pod-IPPod的IP,等效于Pod中网络容器的Container-IP。
Container-IP容器的IP,容器的网络是个隔离的网络空间。

先来看最简单的情况, 即同一个Pod内部容器之间的通信:

Kubernetes 中文指南

  • Istio: Istio 是由 Google、IBM 和 Lyft 开源的微服务管理、保护和监控框架. Istio 并不是首字母缩写,但如果一定要说它代表着什么,也许会是 “I Secure, Then I Observe”(我保护,我观察),或者 “I’m Sexy To Infrastructure Operators."(我对基础设施运营商富有吸引力)。

云原生是一种行为方式和设计理念,究其本质,凡是能够提高云上资源利用率和应用交付效率的行为或方式都是云原生的。

Linux cron 定时任务

cron 是类 Unix 系统中基于时间的任务调度器,守护进程 crond(在 Debian/Ubuntu 上叫 cron)每分钟扫描一次 crontab 表,匹配到当前时间就触发对应命令。它的用途非常广泛:定期备份、日志轮转、证书续期、数据同步、健康检查……几乎所有"每隔一段时间就要跑一遍"的需求都可以交给它。这篇文章梳理 crontab 的表达式语法、常用命令、系统级目录约定,以及生产环境里最容易踩到的坑。