我使用kubespray创建了一个测试k8s群集(3个节点,virtualbox 以centos vm为基础)并且一直试图按照guide设置nginx入口,但我似乎从来没有为我的服务分配外部地址:
我可以看到明显安装了入口控制器:
[root@k8s-01 ~]# kubectl get pods --all-namespaces -l app=ingress-nginx
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx nginx-ingress-controller-58c9df5856-v6hml 1/1 Running 0 28m
按照prerequisites文档,我已经设置了http-svc示例服务:
[root@k8s-01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
http-svc-794dc89f5-f2vlx 1/1 Running 0 27m
[root@k8s-01 ~]# kubectl get svc http-svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
http-svc LoadBalancer 10.233.25.131 <pending> 80:30055/TCP 27m
[root@k8s-01 ~]# kubectl describe svc http-svc
Name: http-svc
Namespace: default
Labels: app=http-svc
Annotations: <none>
Selector: app=http-svc
Type: LoadBalancer
IP: 10.233.25.131
Port: http 80/TCP
TargetPort: 8080/TCP
NodePort: http 30055/TCP
Endpoints: 10.233.65.5:8080
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Type 27m service-controller ClusterIP -> LoadBalancer
据我所知,我应该看到一个LoadBalancer Ingress
条目,但该服务的外部IP似乎仍未决定,所以有些东西不起作用,但我在失去哪里诊断出错了
答案 0 :(得分:0)
由于您在本地创建群集,因此将服务公开为类型LoadBalancer
将不会为您配置负载均衡器。如果要在AWS或GKE等云环境中创建群集,请使用类型Loadbalancer
。在AWS中,它将自动为您提供负载均衡器(ELB)并为该服务分配外部IP。
要使您的服务与当前设置和环境一起使用,请将您的服务类型从NodePort
更改为key = hashlib.pbkdf2_hmac('sha256', b'governor washout beak', b'e65814e4382759f85550029e723dc7e7', 100000, dklen=32)
print(binascii.hexlify(key))
。