Pods 未连接具有相同标签的服务 -Kubernetes
Pods not connecting with service having same labels -Kubernetes
我创建了一个 label:appenv
的 pod 和一个节点端口类型的服务,选择器为 appenv
。但是当我使用 kubectl get ep service-name
时,它显示 "no endpoints"(意味着服务未与该 pod 连接)。
这是我的 pod.yaml
和 service.yaml
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod1
labels:
app: appenv
spec:
containers:
- name: app
image: aathith/lbt:v1
ports:
- name: app-port
containerPort: 8082
restartPolicy: Never
service.yaml
apiVersion: v1
kind: Service
metadata:
name: app
spec:
selector:
app: appenv
type: NodePort
ports:
- name: http
port: 8082
targetPort: 8082
nodePort: 30082
protocol: TCP
kubectl get po --show-labels
的输出
kubectl get svc
的输出
kubectl get svc app
的输出
- 为什么我无法将 Pod 连接到此服务?
- 如何更改上述文件以相互连接?
您的 pod 处于 "Completed" 状态 - 这就是问题所在。它不在状态 "Running"。为什么?因为容器中的命令以 0 退出代码完成。在正常情况下,容器的 运行 命令不应退出,除非它是作业或 Cronjob。你明白我的意思吗?
我创建了一个 label:appenv
的 pod 和一个节点端口类型的服务,选择器为 appenv
。但是当我使用 kubectl get ep service-name
时,它显示 "no endpoints"(意味着服务未与该 pod 连接)。
这是我的 pod.yaml
和 service.yaml
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod1
labels:
app: appenv
spec:
containers:
- name: app
image: aathith/lbt:v1
ports:
- name: app-port
containerPort: 8082
restartPolicy: Never
service.yaml
apiVersion: v1
kind: Service
metadata:
name: app
spec:
selector:
app: appenv
type: NodePort
ports:
- name: http
port: 8082
targetPort: 8082
nodePort: 30082
protocol: TCP
kubectl get po --show-labels
的输出
kubectl get svc
kubectl get svc app
- 为什么我无法将 Pod 连接到此服务?
- 如何更改上述文件以相互连接?
您的 pod 处于 "Completed" 状态 - 这就是问题所在。它不在状态 "Running"。为什么?因为容器中的命令以 0 退出代码完成。在正常情况下,容器的 运行 命令不应退出,除非它是作业或 Cronjob。你明白我的意思吗?