基于云解析PrivateZone的服務發(fā)現(xiàn)
如果您希望在自定義的一個或多個專有網(wǎng)絡中將私有域名映射到IP資源地址,同時在其他網(wǎng)絡環(huán)境中無法訪問您的私有域名,可以使用云解析PrivateZone的服務發(fā)現(xiàn)功能。阿里云容器服務 Serverless 版支持的服務發(fā)現(xiàn)功能是基于阿里云專有網(wǎng)絡VPC(Virtual Private Cloud)環(huán)境的私有域名解析和管理服務,目前支持Intranet service、Headless service、ClusterIP service。
前提條件
已在云解析DNS控制臺中開通云解析PrivateZone。
已創(chuàng)建ACK Serverless集群,并確保已啟用PrivateZone組件。
方式一:對于新建的ACK Serverless集群,您可以在創(chuàng)建集群時,指定PrivateZone作為DNS服務發(fā)現(xiàn),啟用PrivateZone組件。
方式二:對于已創(chuàng)建的ACK Serverless集群,您可以在
eci-profile
配置項中設置enablePrivateZone
參數(shù)值為true
,啟用PrivateZone組件。
費用說明
PrivateZone的收費規(guī)則,請參見產(chǎn)品定價。
操作步驟
部署Deployment和創(chuàng)建Service。
樣例模板如下所示,在YAML文件中復制如下的YAML代碼,然后執(zhí)行
kubectl create -f nginx-service.yaml
命令進行創(chuàng)建。apiVersion: v1 kind: Service metadata: name: nginx-headless-service spec: ports: - port: 80 protocol: TCP selector: app: nginx clusterIP: None --- apiVersion: v1 kind: Service metadata: name: nginx-clusterip-service spec: ports: - port: 80 protocol: TCP selector: app: nginx type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: nginx-intranet-service annotations: service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet spec: ports: - port: 80 protocol: TCP selector: app: nginx type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:alpine ports: - containerPort: 80
執(zhí)行以下命令,查看應用的運行狀況。
kubectl get svc,pod,deployment
登錄到 云解析DNS控制臺。
在左側導航欄單擊內網(wǎng)DNS解析(PrivateZone),在右上角選擇管理配置模式,再單擊內置權威,在此頁簽下單擊用戶域名。
在用戶域名頁簽,單擊目標域名操作列的解析記錄。
說明Zone里面的Record格式為
$svc.$ns
,對應相應的IP解析。解析規(guī)則如下:LoadBalancer service:PrivateZone中只對應一條解析Record,為SLB IP。
ClusterIP service:PrivateZone中只對應一條解析Record,為Cluster IP。
Headless service:PrivateZone中對應多條解析Record,分別為后端Pod的IP。
您可在該VPC網(wǎng)絡環(huán)境中通過私有域名訪問Service。
長域名訪問:
$svc.$ns.svc.cluster.local.$clusterId
,通過這種方式也可以訪問其他集群中同步到PrivateZone的Service。短域名訪問:您可以通過
$svc
訪問本Namespace下的Service,通過$svc.$ns
訪問其他Namespace中的Service。
更多信息,請參見serverless-k8s-examples。
相關文檔
ACK Serverless集群除了可以選擇PrivateZone,也可以選擇CoreDNS作為DNS服務器(二者選其一即可)。具體操作,請參見ACK Serverless集群中DNS域名解析原理。