开发者社区 > 云原生 > Serverless > 正文

Serverless Kubernetes 集群  基于云解析 PrivateZone 的服务发现


阿里云Serverless Kubernetes已经支持服务发现功能,目前支持内网SLB和Headless Service的服务发现。

关于云解析PrivateZone


云解析 PrivateZone,是基于阿里云专有网络VPC(Virtual Private Cloud)环境的私有域名解析和管理服务。您能够在自定义的一个或多个专有网络中将私有域名映射到IP资源地址,同时在其他网络环境无法访问您的私有域名。
[tr=transparent] [/url]说明[tr=transparent]PrivateZone的收费规则参见[url=https://help.aliyun.com/document_detail/71338.html]收费标准

前提条件

  1. 需要先开通云解析 PrivateZone,在云解析DNS控制台中开通。
  2. 您已成功创建一个 Serverless Kubernetes 集群,参见 创建 Serverless Kubernetes 集群
  3. 您已成功连接到 Kubernetes 集群,参见通过 kubectl 连接 Kubernetes 集群


操作步骤

  1. 通过 kubectl 连接到 Kubernetes 集群,执行如下命令,确认连接的集群。kubectl cluster-infoKubernetes master is running at https://xxxxxx.serverless-1.kubernetes.cn-shanghai.aliyuncs.com:6443
  2. 部署 deployment 和创建 Service。目前仅支持 Intranet Service 和 Headless Service。
    以 Intranet Service 为例。创建示例nginx-deployment-basic.yaml文件。vim nginx-deployment-basic.yaml
    样例模板如下所示,在yaml文件中复制如下yaml代码,然后执行 kubectl create -f nginx-deployment-basic.yaml命令进行创建。apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata:   name: nginx-deployment-basic   labels:     app: nginx spec:   replicas: 2   selector:     matchLabels:       app: nginx   template:     metadata:       labels:         app: nginx     spec:       containers:       - name: nginx         image: nginx:1.7.9               # replace it with your exactly <image_name:tags>         ports:         - containerPort: 80 --- apiVersion: v1 kind: Service metadata:   name: nginx-service-intranet           #可通过服务名作为短域名进行访问   annotations:                           ##添加注解service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet spec:   ports:   - port: 80     protocol: TCP   selector:     app: nginx   type: LoadBalancer
    您也可创建 Headless Service 类型的服务,示例模板如下。apiVersion: v1kind: Servicemetadata:name: nginx-service-headlessspec:ports:- port: 80protocol: TCPselector:app: nginxclusterIP: None
  3. 执行以下命令,查看应用的运行状况。kubectl get svc,pod,deployment
  4. 登录 云解析DNS控制台
  5. 在左侧导航栏中单击PrivateZone > Zone 列表,可看到该列表下自动生成一条记录。

  6. 您可在该 VPC 网络环境中通过私有域名访问Service(长域名或者短域名)。
    • 长域名访问:本例中是 nginx-service-intranet.$NAMESPACE.svc.cluster.local,其中$NAMESPACE为Serverless集群 ID,在控制台上可以看到,也可以在pod的yaml文件中通过环境变量得到。env:- name: NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace
    • 短域名访问:nginx-service-intranet 或 nginx-service-headless,即在yaml编排中定义的服务名。

更多信息可参见 serverless-k8s-examples

展开
收起
青蛙跳 2018-08-31 22:41:49 1386 0
0 条回答
写回答
取消 提交回答

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    ACK 云原生弹性方案—云原生时代的加速器 立即下载
    ACK集群类型选择最佳实践 立即下载
    企业运维之云原生和Kubernetes 实战 立即下载

    相关镜像