kubernetes 获得 502 错误网关
kubernetes getting 502 bad gateway
全新的 kubernetes,我遇到了一个问题,我在尝试访问 api.
时收到 502 错误网关
我的配置是这样的
apiVersion: v1
kind: Service
metadata:
name: api-cluster-ip-service
spec:
type: ClusterIP
selector:
component: api
ports:
- port: 80
targetPort: 5000
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-deployment
spec:
replicas: 1
selector:
matchLabels:
component: api
template:
metadata:
labels:
component: api
spec:
containers:
- name: books-api
image: mctabor/books-api
ports:
- containerPort: 5000
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: books-ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /api/?(.*)
backend:
serviceName: api-cluster-ip-service
servicePort: 80
在我的烧瓶应用程序中,我有以下内容:
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
不知道哪里错了
我的 minikube ip 是 192.168.99.104,我正在尝试访问 192.168.99.104/api/status
的 api 路由
您没有正确公开您的服务。首先,ClusterIP 类型的服务仅在集群内可用。当您使用 minikube 时,您应该尝试更改类型 do NodePort。
其次,yaml中声明的端口是使该服务对集群内的其他服务可见的端口。
创建 NodePort 服务后,执行 kubectl get svc
查看分配给该服务的外部端口。您会看到类似 80:30351/TCP 的内容。这意味着您可以通过 192.168.99.104:30351.
访问该服务
是解释如何在 minikube
中公开服务的一个很好的答案
全新的 kubernetes,我遇到了一个问题,我在尝试访问 api.
时收到 502 错误网关我的配置是这样的
apiVersion: v1
kind: Service
metadata:
name: api-cluster-ip-service
spec:
type: ClusterIP
selector:
component: api
ports:
- port: 80
targetPort: 5000
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-deployment
spec:
replicas: 1
selector:
matchLabels:
component: api
template:
metadata:
labels:
component: api
spec:
containers:
- name: books-api
image: mctabor/books-api
ports:
- containerPort: 5000
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: books-ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /api/?(.*)
backend:
serviceName: api-cluster-ip-service
servicePort: 80
在我的烧瓶应用程序中,我有以下内容:
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
不知道哪里错了
我的 minikube ip 是 192.168.99.104,我正在尝试访问 192.168.99.104/api/status
的 api 路由您没有正确公开您的服务。首先,ClusterIP 类型的服务仅在集群内可用。当您使用 minikube 时,您应该尝试更改类型 do NodePort。
其次,yaml中声明的端口是使该服务对集群内的其他服务可见的端口。
创建 NodePort 服务后,执行 kubectl get svc
查看分配给该服务的外部端口。您会看到类似 80:30351/TCP 的内容。这意味着您可以通过 192.168.99.104:30351.