Kubernetes服务未分配外部IP

时间:2017-06-24 21:01:49

标签: docker kubernetes

我有以下部署yaml:

apiVersion: v1
kind: Namespace
metadata:
  name: authentication
  labels:
   name: authentication
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: authentication-deployment
  namespace: authentication
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: authentication
    spec:
      containers:
      - name: authentication
        image: blueapp/authentication:0.0.0
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: authentication-service
  namespace: authentication
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
  selector:
    name: authentication-deployment
  type: LoadBalancer
  externalName: authentication

我对kubernetes很新,但我对我尝试做的事情的理解是创建一个命名空间,在该命名空间中创建一个2个pod的部署,然后创建一个负载均衡器来为这些pod分配流量。

当我跑步时

$ kubectl create -f deployment.yaml

一切都很好,但服务永远不会被分配外部IP

有什么明显可能导致这种情况吗?

2 个答案:

答案 0 :(得分:0)

您的服务属于NodePort类型。 要获得分配给服务的负载均衡器,您应该使用LoadBalancer服务类型:

type: LoadBalancer

请参阅此处的文档: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types

答案 1 :(得分:0)

只有在正确配置云提供商的情况下,外部IP才会在受支持的云环境中分配。

创建服务时,请注意kube-controller-manager日志中的错误消息。