我正在尝试在 kubernetes 上部署 nginx,kubernetes 版本是 v1.5.2,我已经部署了 3 个副本的 nginx,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 或 Google Cloud 不同)。使用此默认设置,您只能使用NodePort或 Ingress Controller。
minikube
kubeadm
NodePort
使用Ingress Controller,您可以设置一个映射到您的 pod 的域名;LoadBalancer如果您使用入口控制器,则不需要为您的服务提供类型。
LoadBalancer