我试图在kubernetes上部署nginx, kubernetes版本是v1.5.2, 我已经部署了nginx的3个副本,YAML文件如下,

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: deployment-example
spec:
  replicas: 3
  revisionHistoryLimit: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.10
        ports:
        - containerPort: 80

现在我想在节点的30062端口上公开它的80端口,为此我在下面创建了一个服务,

kind: Service
apiVersion: v1
metadata:
  name: nginx-ils-service
spec:
  ports:
    - name: http
      port: 80
      nodePort: 30062
  selector:
    app: nginx
  type: LoadBalancer

这项服务工作得很好,但它不仅在kubernetes仪表板上也在终端上显示为待定。


当前回答

看起来你正在使用一个定制的Kubernetes集群(使用minikube, kubeadm或类似的)。在这种情况下,没有集成LoadBalancer(不像AWS或谷歌Cloud)。在这个默认设置下,您只能使用NodePort或Ingress Controller。

使用入口控制器,你可以设置一个域名映射到你的pod;如果你使用入口控制器,你不需要给你的服务LoadBalancer类型。

其他回答

您可以修补pod托管的节点的IP(节点的私有IP),这是简单的解决方案。

参考上述职位,以下对我来说很有用:

Kubectl补丁服务my-loadbalancer-service-name \ -n lb-service-namespace \ - p '{"规范":{“类型”:“loadbalance”、“externalIPs”:[" xxx.xxx.xxx。xxx物理服务器私有IP -节点-部署位置"]}}'

看起来你正在使用一个定制的Kubernetes集群(使用minikube, kubeadm或类似的)。在这种情况下,没有集成LoadBalancer(不像AWS或谷歌Cloud)。在这个默认设置下,您只能使用NodePort或Ingress Controller。

使用入口控制器,你可以设置一个域名映射到你的pod;如果你使用入口控制器,你不需要给你的服务LoadBalancer类型。

我在AWS EKS上也有同样的问题

问题是这样解决的:

Amazon虚拟私有云(Amazon VPC)的正确标记 子网 所需的AWS IAM (Identity and Access Management)权限 一个有效的Kubernetes服务定义Load 有足够的空闲IP地址 在子网上

需要确保以下标签 关键:kubernetes.io /集群/ yourEKSClusterName 价值:分享

关键:kubernetes.io /角色/ elb 值:1

关键:kubernetes.io /角色/ internal-elb 值:1

供参考,也确保sts是为您正在工作的区域启用sts设置可以在用户,区域设置下找到。

如果你正在使用minikube,那么从终端运行下面的命令,

$ minikube ip
$ 172.17.0.2 // then 
$ curl http://172.17.0.2:31245
or simply
$ curl http://$(minikube ip):31245

使用NodePort:

$ kubectl run user-login --replicas=2 --labels="run=user-login" --image=kingslayerr/teamproject:version2  --port=5000

$ kubectl expose deployment user-login --type=NodePort --name=user-login-service

$ kubectl describe services user-login-service

(请记下端口)

$ kubectl cluster-info

获取主机正在运行的IP地址

您的服务可在(IP):(端口)访问