为EKS服务命名(而不是自动生成)

时间:2019-06-24 20:20:38

标签: kubernetes amazon-eks eks

说我有以下代表服务的YAML:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-west-2:91371:certificate/0a389f-4086-4db6-9106-b587c90a3
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
  labels:
    app: main-api-prod
  name: main-api-prod
spec:
  type: LoadBalancer
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
    - name: https
      protocol: TCP
      port: 443
      targetPort: 80
  selector:
    app: main-api-prod

我跑步后:

kubectl apply -f <file>

我跑步:

kbc get svc -o json | grep hostname

我们看到:

  

“主机名”:   “ a392f200796b8b0279bdd390c-228227293.us-west-2.elb.amazonaws.com”

我的问题是-是否可以告诉kubectl在主机名中使用我自己的ID?换句话说,我想告诉它使用“ abc”而不是“ a392 ..”,因此它将是:

"abc-228227293.us-west-2.elb.amazonaws.com"

顺便说一句,如果有人知道“ 228227293”代表什么,请lmk,我知道这不是我们的AWS账户ID,可以肯定。

1 个答案:

答案 0 :(得分:2)

创建类型为“负载均衡器”的服务时,云提供商(此处为aws)将创建一个新的负载均衡器。负载均衡器的命名由云提供商负责。我认为您无法告诉Amazon如何生成负载均衡器名称。它可能取决于负载均衡器的类型-alb,内部alb,nlb等。

但是您可以使用“ external-dns”(https://github.com/kubernetes-incubator/external-dns)。为dns提供程序配置时-例如aws route53-它可以自动为您的负载均衡器创建dns别名。但是您将无法在amazonws.com域中创建名称...