【阿里云系列】-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实例的动作

相关推荐
捂一捂啊啊9 小时前
腾讯云系统盘占满
云计算·腾讯云
腾讯云大数据9 小时前
腾讯云ES一站式RAG方案获信通院“开源大模型+软件创新应用”精选案例奖
大数据·elasticsearch·开源·云计算·腾讯云
国际云,接待13 小时前
[特殊字符]服务器性能优化:从硬件到AI的全栈调优指南
运维·服务器·人工智能·阿里云·性能优化·架构·云计算
信服云14 小时前
拥有600+门店的宠物连锁医院,实现核心业务系统上云
云计算
容器魔方14 小时前
Bilibili、中电信人工智能科技、商汤科技、联通云等正式加入Volcano社区用户组
云原生·容器·云计算
24k小善15 小时前
FlinkSql入门与实践
java·大数据·flink·云计算
Linux运维老纪15 小时前
Python文件操作及数据库交互(Python File Manipulation and Database Interaction)
linux·服务器·数据库·python·云计算·运维开发
南客先生20 小时前
Java在云计算、大数据、云原生下的应用和优势 - 面试实战
java·大数据·微服务·云原生·云计算·容器化·分布式计算
Linux运维老纪21 小时前
交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
linux·网络·mysql·华为·云计算·运维开发
weixin_307779131 天前
Azure Data Factory ETL设计与调度最佳实践
数据仓库·性能优化·云计算·azure·etl