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

相关推荐
Anna_Tong1 天前
腾讯云安全加速:应对网络攻击与访问延迟的现实挑战
安全·云计算·腾讯云·企业安全·ddos·云安全·数据保护
渲染101专业云渲染1 天前
渲染101对Blender的支持与硬件配置详解
3d·云计算·blender·maya·houdini
严文文-Chris1 天前
【奥卡姆剃刀原理-如何理解云计算和边缘计算 关键字摘取】
人工智能·云计算·边缘计算
伟贤AI之路1 天前
从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)?
人工智能·阿里云·火山引擎
HaoHao_0101 天前
腾讯云 轻量云对象存储
云计算·腾讯云·存储·轻量云·套餐
容器魔方2 天前
「挚文集团」正式加入 Karmada 用户组!携手社区共建多集群生态
云原生·容器·云计算
小狗很可爱2 天前
云计算相关
云计算
虚魍2 天前
高版本k8s文件无法识别镜像
linux·运维·容器·kubernetes·云计算
春生黎至10053 天前
云计算及其他计算
云计算