我正在使用头盔将JupyterHub(版本0.8.2)部署到kubernetes(AWS管理的kubernetes“ EKS”)。我有一个头盔配置来描述使用AWS弹性负载均衡器的代理公共服务:
proxy:
secretToken: ""
https:
enabled: true
type: offload
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ...
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp"
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '1801'
问题:当我通过头盔将JupyterHub部署到EKS时:
helm upgrade --install jhub jupyterhub/jupyterhub --namespace jhub --version=0.8.2 --values config.yaml
proxy-public svc永远不会获得外部IP。它停留在待处理状态:
> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hub ClusterIP 172.20.241.23 <none> 8081/TCP 15m
proxy-api ClusterIP 172.20.170.189 <none> 8001/TCP 15m
proxy-public LoadBalancer 172.20.72.196 <pending> 80:31958/TCP,443:30470/TCP 15m
我做了kubectl describe svc proxy-public
并且kubectl得到了事件,似乎没有什么异常。没有错误。
答案 0 :(得分:0)
您将需要另一个这样的注释才能使用AWS经典负载均衡器。
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
答案 1 :(得分:0)
原来的问题是我错误地将kubernetes集群(和控制平面)仅放置在专用子网中,从而使ELB无法获得外部IP。
答案 2 :(得分:0)
在Kubernetes上部署JupyterHub有时会显得过分,如果您所需要的只是Jupyterhub,可以通过Internet来访问您或您的团队。您可以在AWS或任何其他云中设置VM并安装jupyterhub并作为服务运行,而无需进行复杂的kubernetes设置。
实际上,AWS,GCP和Azure上已经存在VM设置,可用于启动jupyterhub vm,可以在公共ip上访问它,只需单击几下即可支持单用户或多用户会话。如果想尝试,请在下面查看详细信息: