gpt4 book ai didi

kubernetes - 无法通过 kubernetes 上的服务名称访问服务

转载 作者:行者123 更新时间:2023-12-02 11:51:50 24 4
gpt4 key购买 nike

我正在使用下面的 list 。我有一个简单的服务器,它在 /hello 上打印 pod 名称。在这里,我正在浏览 kubernetes 文档,其中提到我们也可以通过服务名称访问服务。但这对我不起作用。由于这是一种 NodePort 类型的服务,因此我能够使用其中一个节点的 IP 来访问它。我的 list 有问题吗?

apiVersion: apps/v1
kind: Deployment
metadata:
name: myhttpserver
labels:
day: zero
name: httppod
spec:
replicas: 1
selector:
matchLabels:
name: httppod
day: zero
template:
metadata:
labels:
day: zero
name: httppod
spec:
containers:
- name: myappcont
image: agoyalib/trial:tryit
imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
name: servit
labels:
day: zeroserv
spec:
type: NodePort
selector:
day: zero
name: httppod
ports:
- name: mine
port: 8080
targetPort: 8090

编辑:我创建了自己的迷你 k8s 集群,并且在主节点上执行这些操作。

最佳答案

根据你所说的我的理解

As this is a service of type NodePort, I am able to access it using IP of one of the nodes

您正在从集群外部访问您的服务。这就是为什么您无法使用其名称访问它。

要使用服务名称访问服务,您需要位于集群内部。

下面是一个示例,您使用基于 centos 的 pod 来使用其名称连接到您的服务:

# Here we're just creating a pod based on centos
$ kubectl run centos --image=centos:7 --generator=run-pod/v1 --command sleep infinity

# Now let's connect to that pod
$ kubectl exec centos -ti bash
[root@centos /]# curl servit:8080/hello

关于kubernetes - 无法通过 kubernetes 上的服务名称访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59824890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com