【发布时间】:2019-09-08 12:10:41
【问题描述】:
我正在尝试将网络服务部署到 Google 的 Kontainer 引擎。
我用cluster size: 4 AND total cores: 8 创建了一个集群。
在我的 yaml 配置中,我正在为我的三个服务和一个 Service 创建部署以公开这些服务以及 ingress 以处理路由。
这是我的 yaml:
kind: Deployment
apiVersion: apps/v1
metadata:
name: nodeapp-deployment
labels:
app: nodeapp
spec:
replicas: 3 #We always want more than 1 replica for HA
selector:
matchLabels:
app: nodeapp
template:
metadata:
labels:
app: nodeapp
spec:
containers:
- name: wishlist # svc name
image: karthequian/wishlist:1.0 #Dockerhub image
ports:
- containerPort: 8080 #Exposes the port 8080 of the container
env:
- name: wishlist-port #Env variable key passed to container that is read by app
value: "8080" # Value of the env port.
- name: catalog # svc name
image: karthequian/wishlist-catalog:1.0 #Dockerhub image
ports:
- containerPort: 8081 #Exposes the port 8080 of the container
env:
- name: catalog-port #Env variable key passed to container that is read by app
value: "8081" # Value of the env port.
- name: auth # svc name
image: karthequian/wishlist-auth:1.0 #Dockerhub image
ports:
- containerPort: 8082 #Exposes the port 8080 of the container
env:
- name: auth-port #Env variable key passed to container that is read by app
value: "8082" # Value of the env port.
kind: Service
apiVersion: v1
metadata:
name: nodeapp-service
labels:
app: nodeapp-service
namespace: default
spec:
type: ClusterIP
selector:
app: nodeapp
ports:
- name: wishlist-port
protocol: TCP
port: 8080
- name: catalog-port
protocol: TCP
port: 8081
- name: auth-port
protocol: TCP
port: 8082
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nodeapp-service
labels:
app: nodeapp-service
spec:
rules:
- host:
http:
paths:
- path: /wishlist
backend:
serviceName: nodeapp-service
servicePort: 8080
- path: /products
backend:
serviceName: nodeapp-service
servicePort: 8081
- path: /login
backend:
serviceName: nodeapp-service
servicePort: 8081
它返回一个令人困惑的错误:
请帮帮我!
提前致谢!
【问题讨论】:
-
你能运行“kubectl get po”吗?您的仪表板显示 3/3 的 pod 正在运行,因此这可能只是 GKE 仪表板的错误。
-
嗨@PatrickW,在这种情况下,部署应该工作,但它不工作。
-
这就是为什么我想要 'kubectl get po' 和 'kubectl describe po [pod_name] 的输出,这样我们就可以看到 pod 没有运行的原因
-
为了增加一些清晰度,错误消息“没有最低可用性”不是一个有用的错误。仪表板只是告诉您并非所有 pod 都在运行,但没有提供任何有关原因的信息。
标签: kubernetes google-kubernetes-engine kubernetes-deployment