最近,我开始使用一些Raspberry pi建立我自己的kubernetes集群。
我已经达到了集群启动并运行的地步!
有关如何设置群集的一些背景信息,我使用了this guide
但是现在,当我要部署和公开应用程序时,我遇到了一些问题...
在kubernetes教程之后,我进行了nginx的部署,运行良好。当我进行端口转发时,我可以在本地主机上看到默认的nginx页面。
现在是棘手的部分,创建服务并通过入口将来自Internet的流量路由到服务。
我已经执行了以下命令
kubectl expose deployment/nginx --type="NodePort" --port 80 kubectl expose deployment/nginx --type="Loadbalancer" --port 80
这些将导致以下结果。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25h nginx NodePort 10.103.77.5 <none> 80:30106/TCP 7m50s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25h nginx LoadBalancer 10.107.233.191 <pending> 80:31332/TCP 4s
外部IP地址从不显示,这使我几乎无法通过执行
curl some-ip:80
从集群外部访问应用程序,这最终是我设置此集群的全部原因。
如果你们中的任何人有一些明确的指南或建议,我可以与之合作,我们将不胜感激!
注意:我已经阅读了有关LoadBalancer的内容,应该由云主机提供。由于我使用RPI运行,所以我认为这对我不起作用。但我相信NodePort应该可以通过入口路由。
此外,我也知道我应该有某种类型的入口控制器才能使入口正常工作。
所以我现在对节点端口有以下内容-30168
$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 26h nginx NodePort 10.96.125.112 <none> 80:30168/TCP 6m20s
并且对于IP地址,我具有
192.168.178.102
或10.44.0.1
$ kubectl describe pod nginx-688b66fb9c-jtc98 Node: k8s-worker-2/192.168.178.102 IP: 10.44.0.1
但是当我在浏览器中使用nodeport输入这些IP地址中的任何一个时,我仍然看不到nginx页面。我在做错什么吗?
最近,我开始使用一些Raspberry pi构建我自己的kubernetes集群。我已经到了可以运行群集的地步!有关如何设置...
您的任何工作节点的IP地址都可用于NodePort
(或LoadBalancer
)服务。从the description of NodePort
services: