如何配置阿里云容器服务K8S Ingress Controller使用私网SLB

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文主要讲述如何配置阿里云容器服务K8S Ingress Controller使用私网SLB。

背景

我们通过阿里云容器服务申请一个K8S集群,集群初始化时会自动部署一套Nginx Ingress Controller,默认其挂载在公网SLB实例上:

nginx_ingress_slb

配置私网SLB

但对于部分用户来说,希望容器集群内的服务仅仅只对同一个VPC内其他服务调用访问,那么我们可以通过调整Nginx Ingress Controller服务的配置来完成。

nginx_ingress_slb_2

1、手动申请私网SLB实例

我们需要事先手动在对应的VPC网络下申请一个期望规格的SLB实例。

2、配置Nginx Ingress Controller服务

当我们成功申请一个私网SLB实例后,那么我们可以通过如下注解来配置Nginx Ingress Controller使用该SLB实例:

具体参考如下:

# nginx ingress slb service
apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-lb
  namespace: kube-system
  labels:
    app: nginx-ingress-lb
  annotations:
    # 指明SLB实例地址类型为私网类型
    service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
    # 修改为您的私网SLB实例ID
    service.beta.kubernetes.io/alicloud-loadbalancer-id: <YOUR_INTRANET_SLB_ID>
    # 是否自动创建SLB端口监听(会覆写已有端口监听),也可手动创建端口监听
    #service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
spec:
  type: LoadBalancer
  # route traffic to other nodes
  externalTrafficPolicy: "Cluster"
  ports:
  - port: 80
    name: http
    targetPort: 80
  - port: 443
    name: https
    targetPort: 443
  selector:
    # select app=ingress-nginx pods
    app: ingress-nginx
AI 代码解读

通过如上修改(apply)容器集群kube-system/nginx-ingress-lb服务即可配置使用指定的私网SLB实例。

同时使用私网SLB和公网SLB

另外对于一些特殊场景,期望容器集群内的服务既能允许公网访问,同时又希望能被同一个VPC下的其他服务直接访问(不经过公网)。

nginx_ingress_slb_3

那么我们可以额外部署一个kube-system/nginx-ingress-lb-intranet服务即可。

注意:默认集群初始化时已经创建了一个kube-system/nginx-ingress-lb服务,其生成的是公网SLB实例

1、 手动申请私网SLB实例

我们需要事先手动在对应的VPC网络下申请一个期望规格的SLB实例。

2、 新建Intranet Nginx Ingress Controller服务

当我们成功申请一个私网SLB实例后,我们可以通过如下YAML新建一个kube-system/nginx-ingress-lb-intranet服务:

# intranet nginx ingress slb service
apiVersion: v1
kind: Service
metadata:
  # 这里服务取名为nginx-ingress-lb-intranet
  name: nginx-ingress-lb-intranet
  namespace: kube-system
  labels:
    app: nginx-ingress-lb-intranet
  annotations:
    # 指明SLB实例地址类型为私网类型
    service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
    # 修改为您的私网SLB实例ID
    service.beta.kubernetes.io/alicloud-loadbalancer-id: <YOUR_INTRANET_SLB_ID>
    # 是否自动创建SLB端口监听(会覆写已有端口监听),也可手动创建端口监听
    #service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
spec:
  type: LoadBalancer
  # route traffic to other nodes
  externalTrafficPolicy: "Cluster"
  ports:
  - port: 80
    name: http
    targetPort: 80
  - port: 443
    name: https
    targetPort: 443
  selector:
    # select app=ingress-nginx pods
    app: ingress-nginx
AI 代码解读

成功创建kube-system/nginx-ingress-lb-intranet服务后,我们可以看到如下两个Nginx Ingress Controller服务,一个配置的是公网SLB实例,一个是VPC私网SLB实例:

  kubectl -n kube-system get svc | grep nginx-ingress-lb
nginx-ingress-lb            LoadBalancer   172.19.9.26    47.96.223.50   80:31456/TCP,443:30016/TCP   5h
nginx-ingress-lb-intranet   LoadBalancer   172.19.4.140   192.168.2.88   80:32394/TCP,443:31000/TCP   7m
AI 代码解读

此时当我们通过Ingress对外暴露服务时,即可以通过公网SLB来访问该服务,同一个VPC下的其他服务又可以直接通过私网SLB来访问该服务。

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
0
0
78391
分享
相关文章
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
32 10
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
263 3
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
175 2
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
175 1
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
915 2

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版