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

相关推荐
云宏信息39 分钟前
【深度解析】VMware替代的关键一环:云宏ROW快照如何实现高频业务下的“无感”数据保护?
服务器·网络·数据库·架构·云计算·快照
wanhengidc5 小时前
如何使用云手机进行游戏挂机?
运维·服务器·游戏·智能手机·云计算
王道长服务器 | 亚马逊云6 小时前
AWS CloudTrail:让每一次操作都“有迹可循”
服务器·网络·云计算·智能路由器·aws
wanhengidc7 小时前
操作简单稳定选巨 椰 云手机
运维·服务器·游戏·智能手机·云计算
Apache Flink7 小时前
阿里云、Ververica、Confluent、Linkedin携手推进流式创新,共筑智能体AI未来
人工智能·阿里云·云计算
wanhengidc13 小时前
云手机的魅力与优势
网络·游戏·智能手机·架构·云计算
TG_yunshuguoji15 小时前
启动模板创建AWS EC2 Auto Scaling指南
服务器·云计算·aws
郏国上18 小时前
图片上传阿里云
阿里云·node.js·云计算
TG_yunshuguoji18 小时前
阿里云国际代理商:如何实现配置跨区域复制?
安全·阿里云·云计算
王道长服务器 | 亚马逊云1 天前
AWS CloudWatch Logs Insights:实时日志分析,让服务器问题无所遁形
服务器·云计算·aws