【发布时间】:2020-05-03 13:42:13
【问题描述】:
我在 Kubernetes 集群中运行两个节点。我能够使用 3 个副本及其服务部署我的微服务。现在我正在尝试让 nginx 入口控制器公开我的服务,但我从日志中收到此错误:
获取 pod 信息意外错误:无法获取 POD 信息(缺少 POD_NAME 或 POD_NAMESPACE 环境变量)
我在我的集群中设置了一个开发命名空间,这是我的微服务部署的地方,也是 nginx 控制器。我不明白 nginx 如何获取我的 pod 或我如何传递 pod 名称或 pod_namespace。
这是我的 nginx 控制器:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-controller
spec:
replicas: 1
selector:
matchLabels:
name: nginx-ingress
template:
metadata:
labels:
name: nginx-ingress
spec:
containers:
- name: nginx-ingress-controller
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.27.0
args:
- /nginx-ingress-controller
- --configmap=$(POD_NAMESPACE)/nginx-configuration
env:
- name: mycha-deploy
valueFrom:
fieldRef:
fieldPath: metadata.name
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
这里是我的部署:
#dDeployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: mycha-deploy
labels:
app: mycha-app
spec:
replicas: 3
selector:
matchLabels:
app: mycha-app
template:
metadata:
labels:
app: mycha-app
spec:
containers:
- name: mycha-container
image: us.gcr.io/##########/mycha-frontend_kubernetes_rrk8s
ports:
- containerPort: 80
谢谢
【问题讨论】:
标签: docker nginx kubernetes nginx-ingress