为 Azure Database for PostgreSQL flexible server 创建 Private Endpoint

2026-07-28#Azure

在产品环境中,PSQL Server 和应用通常处于不同的网络环境中,甚至位于不同的 Subscription。Azure Database for PostgreSQL Flexible Server 常见的两种接入方式是 VNet IntegrationPublic Access + Private Endpoint。如果希望最小化网络打通范围,并降低安全与合规边界扩散的风险,通常更适合使用 Private Endpoint

通过 IIS URL Rewrite 还原原始请求协议(HTTPS)

2026-07-26#IIS#Windows#ASP.NET#CDN#HTTPS

将应用部署到 Kubernetes 集群时,通常会使用 Ingress Controller、Gateway 等组件完成 TLS 终止(TLS Termination),即客户端与 Ingress Controller 之间使用 HTTPS 协议,而 Ingress Controller 与服务之间使用 HTTP 协议。默认情况下,ASP.NET 会根据请求的协议来判断是否使用 HTTPS,但此时 ASP.NET 看到的请求是 HTTP,因此会误判为非 HTTPS 请求,从而导致一些功能无法正常工作,比如生成的重定向 URL 不正确,或者安全相关的功能失效。解决方法之一,就是使用 URL Rewrite 模块还原请求的协议。

ArgoCD 接入 Azure Entra ID 单点登录

2026-07-22#ArgoCD#Azure

ArgoCD 可以与 Azure Entra ID,实现单点登录(SSO)。本文将介绍如何在 Azure Entra ID 中配置 ArgoCD 的 SSO。

从 Azure Container Registry 删除大仓库

2026-07-15#Azure#ACR

Azure Container Registry (ACR) 是 Azure 提供的私有 Docker 镜像仓库服务。随着时间的推移,仓库中可能会积累大量的镜像和标签,导致仓库变得非常大。对于大仓库的删除操作,直接使用常规的删除命令可能会失败,尤其是在仓库中包含大量镜像和标签时。

获取当前 Azure 租户下的所有虚拟网络(VNet)

2026-07-15#Azure#VNet

在 Azure 创建虚拟网络(VNet)时,通常需要规划 IP 地址空间,以避免与其他 VNet 或本地网络冲突。为了更好地规划和管理 VNet,了解当前 Azure 租户下的所有 VNet 及其地址空间是非常重要的。为此,可使用 Azure Resource Graph 查询当前租户下的所有 VNet 信息。

使用 az aks command invoke 重启 AKS 中的 Deployment

2026-07-15#Azure#AKS

当重启 Kubernetes 部署时,通常会使用 kubectl rollout restart deployment <deployment-name> -n <namespace> 命令。然而,在某些情况下,可能无法直接访问 AKS 集群的 Kubernetes API,此时可以使用 Azure CLI 的 az aks command invoke 命令来执行该操作。

在 GCP 上使用 Workload Identity 设置 PostgreSQL 服务器

2026-06-30#GCP#PostgreSQL

在现代的云基础设施中,安全性和身份验证是至关重要的。Google Cloud Platform (GCP) 提供了 Workload Identity 认证机制,使得在云环境中运行的应用程序可以安全地访问 Cloud SQL 数据库,而无需在代码中硬编码数据库凭据。本文将介绍如何在 GCP 上使用 Workload Identity 认证设置 PostgreSQL 服务器,包括实例创建、用户管理和数据库连接示例。本文介绍使用 Pulumi 来创建 GCP Cloud SQL PostgreSQL 实例,并使用 Workload Identity 进行身份验证。

在 K8s Gateway API 中为多个 Hostname 使用单个证书

2026-06-30#Kubernetes#Gateway API

随着 Ingress NGINX 的退役,一些 Kubernetes 集群迁移到了 Gateway API 上。Gateway API 通过 hostname intersection 的机制对请求进行路由,具体可见文档 《Hostnames in Gateway API》。也就是说,默认情况下,SSL 证书的 CN 必须和 Host 一致,或者使用泛域名的 CN 和 Host 必须有交集。但在某些情况下,SSL 证书和请求的 Host 头可能不一致。比如典型的 SaaS 支持不同的第三方域名,使用 CDN(比如 Azure Front Door)管理这些域名的证书,但这些证书可能无法导出到 Kubernetes 中。在 Nginx 中,可以实现 SNI 和 Host 头不同,即使用自有域名的证书建立 TLS 连接,然后再通过请求里的 Host 进行路由。在 Gateway API 中,其实也可以做到。

从本机访问 Google Kubernetes Engine 集群

2026-06-16#GKE#Kubernetes

在 GCP 上搭建好了 Google Kubernetes Engine 集群后,从本地如何使用 kubectl 命令访问呢?安装 gke-gcloud-auth-plugin 插件后,就可以从本地访问 GKE 集群了。

将 Ingress NGINX 迁移到 Azure Kubernetes Service 上的 Gateway API

2026-06-16#AKS#Kubernetes#Azure

很遗憾 Ingress NGINX 项目已经走到了生命的尽头……自 2026年3月起,官方已经不再维护它了。Azure Kubernetes Service (AKS) 官方给出了若干迁移方案,其中包括使用使用 Gateway API 替代它。Gateway API 与 Ingress NGINX 的功能类似,但某些行为有所不同。但对 Ingress NGINX 的非常规使用,可能导致在迁移到 Gateway API 时出现一些挑战。