【阿里云系列】-ACK的应用服务如何暴露公网并挂载域名

背景介绍

针对部署到阿里云ACK集群的应用服务,实际业务场景可能需要我们暴露其中的服务到公网并要求通过域名访问改服务,那具体在阿里云平台上如何实现呢

配置步骤

新建ack集群是后续工作的第一前提由于篇幅有限就不在本文赘述,如下是基本准备工作:

1、将服务以NodePort方式部署在ACK中

如下图所示为部署的yaml文件

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-web
  namespace: prod  
  labels:
    app: test-web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-web
  template:
    metadata:
      labels:
        app: test-web
    spec:
      containers:
      - name: test-web
        image: registry-vpc.cn-shanghai.aliyuncs.com/prod-acr/test-web:${IMAGE-TAG}
        ports:
        - containerPort: 8080
#        resources:
#          limits:
#            cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:
  name: test-web
  namespace: prod 
  labels:
    app: test-web
spec:
  selector:
    app: test-web
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 8080
  - name: https
    protocol: TCP
    port: 443
    targetPort: 8080
  type: NodePort

2、配置AlbConfig

如下图所示,在工作负载-自定义资源中添加AlbConfig

yaml 复制代码
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: test-prod-alb
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: >
      {"apiVersion":"alibabacloud.com/v1","kind":"AlbConfig","metadata":{"annotations":{},"name":"test-prod-alb"},"spec":{"config":{"addressType":"Internet","id":"alb-dgggggggsaaayy7","name":"test-prod-alb","zoneMappings":[{"vSwitchId":"vsw-xxxxxyyyyyyyyg"},{"vSwitchId":"vsw-xxxxxxxyyyyhib"}]},"listeners":[{"port":80,"protocol":"HTTP"},{"port":443,"protocol":"HTTPS"}]}}
spec:
  config:
    addressType: Internet
    forceOverride: true
    id: alb-dgggggggsaaayy7
    listenerForceOverride: true
    name: test-prod-alb
    zoneMappings:
      - vSwitchId: vsw-xxxxxyyyyyyyyg
      - vSwitchId: vsw-xxxxxxxyyyyhib
  listeners:
    - port: 80
      protocol: HTTP
    - port: 443
      protocol: HTTPS

其中config.id代表是已有的ALB实例的ID,config.name则可以自定义,config.forceOverride为true则会强制替换已有的ALB实例的配置,zoneMappings.vSwitchId表示vpc网络的交换机的实例id

3、新建IngressClass

如下图所示,在工作负载-自定义资源中添加IngressClass

yaml 复制代码
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: test-prod-alb
    scope: Cluster

4、配置证书密钥

如下图所示,在配置管理-保密字典中创建

点击创建按钮,如下图所示

其中TLS证书在后面的步骤中会提到如何新建SSL证书,在SSL证书平台中下载对应的证书,如下图所示

点击【下载】按钮,打开如下图所示页面:

下载之后获取证书和key文件,如下图所示

5.新建Ingress路由配置

在网络-路由中创建Ingress

点击【创建Ingress】如下图所示:

以上操作就会自动把SSL证书挂载到对应的ALB实例下

6、申请SSL证书

此步骤确定之后需要提交审核,免费证书通过审核要10几分钟,审核通过之后在SSL证书域名解析记录中会出现如下图所示的TXT类型的记录

7、添加域名解析

如下步骤则是将域名挂载到已有的ALB实例的动作

相关推荐
网络工程师_ling2 小时前
【阿里云多地域混合云网络架构】
网络·阿里云·架构
AKAMAI5 小时前
Akamai Cloud客户案例 | 全球教育科技公司TalentSprint依托Akamai云计算服务实现八倍增长并有效控制成本
人工智能·云计算
咕噜企业分发小米6 小时前
阿里云与华为云基因测序数据分析中如何优化成本?
阿里云·华为云·云计算
一路向北North6 小时前
阿里云maven仓库拉取依赖提示Connection reset
阿里云·云计算·maven
咕噜企业分发小米8 小时前
阿里云与华为云基因测序数据分析如何实现数据协同?
阿里云·华为云·云计算
数据库知识分享者小北8 小时前
从极速复制“死了么”APP,看AI编程时代的技术选型
数据库·阿里云·状态模式·ai编程·supabase
咕噜企业分发小米8 小时前
阿里云与华为云基因测序数据分析中如何实现数据共享?
阿里云·华为云·云计算
源码技术栈8 小时前
新一代云原生 HIS 系统:技术架构全解析 + 核心业务功能全景展示
云原生·云计算·源码·saas·云his·his·多医院
翼龙云_cloud9 小时前
阿里云渠道商:提升云防火墙规则安全与性能的关键策略有哪些?
安全·阿里云·云计算
鲨莎分不晴9 小时前
云计算技术架构与原理深度解析:从虚拟化到云原生的演进之路
云原生·架构·云计算