kubernetes 如何从主机访问Pod?

jtjikinw  于 2023-01-16  发布在  Kubernetes
关注(0)|答案(2)|浏览(199)

我用kubernetes运行colima,比如:colima start --kuberenetes
我创建了一些运行的pod,我想看看通过浏览器访问。但我不知道什么是colima IP(或kubernetes节点IP)。
感谢帮助

bxgwgixi

bxgwgixi1#

您可以这样获得nodeIp:

kubectl get node

NAME       STATUS   ROLES    AGE   VERSION
nodeName   Ready    <none>   15h   v1.26.0

然后使用nodeName:

kubectl describe node nodeName

这为您提供了节点的描述,您应该查找以下部分:

Addresses:
  InternalIP:  10.165.39.165
  Hostname:    master

Ping以验证网络。
在Mac上找到您的主机文件,并创建如下条目:

10.165.39.165 test.local

这允许您使用域名访问集群。
Ping它以验证。
您无法从群集外部访问ClusterIp。要访问Pod,您有几种可能性。
1.如果您服务类型为ClusterIp,则可以使用端口转发从您的主机创建临时连接。

kubectl port-forward svc/yourservicename localport:podport

1.(我会raccomend这)创建一个服务类型:节点端口
然后

kubectl get svc -o wide

显示节点端口:在(30000 - 32000)之间。
您现在可以通过以下方式访问Pod:测试本地节点端口或IP地址节点端口。
注意:如果您部署在非默认名称空间中,请在kubectl命令中添加-n yournamespace。
更新:
如果要使用ipAddress启动colima,请首先查找一个可用本地网络。
您可以通过以下方式获取网络设置:

ifconfig

找到网络。应该和你的互联网路由器一样。
查找子网。很可能是255.255.255.0。
要传递的值,则:

--network-address xxx.xxx.xxx.xxx/24

如果子网是www.example.com,那么/16。但我不认为,如果你是从家里连接。但在一家公司内部,这是可能的。255.255.0.0 then /16. But i dont think, if you are connect from home. Inside a company however this is possible.
再次使用ping进行检查,并按照开始的步骤验证kubernetes节点配置。

k2arahey

k2arahey2#

从节点访问Pod有几种方法。以下是几个选项:
1.使用kubectl port-forward:此命令允许您将本地端口转发到pod上的端口。例如,如果要访问pod中端口8080上运行的Web应用程序,可以运行kubectl port-forward <pod-name> 8080:8080,然后通过在浏览器中访问http://localhost:8080来访问该应用程序。
1.使用kubectl expose:此命令可创建向网络公开特定Pod的服务。创建服务后,您可以使用kubectl get svc查找服务的IP地址,然后通过在浏览器中访问IP地址来访问Pod。
1.使用kubectl get nodes获取Kubernetes节点的IP地址,然后使用kubectl describe pod <pod-name>查找要访问的Pod的端口,并使用该IP和端口连接到Pod。
1.使用kubectl apply -f命令创建一个Ingress资源,一旦创建了Ingress,就可以使用kubectl get ingress <ingress-name>找到该Ingress的IP地址和主机名,然后通过在浏览器中访问该IP地址或主机名来访问Pod。
请注意,根据您的群集设置,上述某些选项可能不可用。
此外,请注意,pod不适合直接访问,通常通过服务和入口暴露在网络中,因此建议使用它们。

相关问题