我遵循本教程:https://cloud.google.com/container-engine/docs/tutorials/http-balancer,但在Minikube中运行它时,每个步骤都带有yml文件:
步骤1:部署nginx服务器
production.yml:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: pwa-app-production
labels:
app: MyApp
spec:
replicas: 1
template:
metadata:
name: app
labels:
app: MyApp
env: production
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- name: nginx
containerPort: 80然后:
$ kubectl apply -f production.yml步骤2:将nginx部署公开为内部服务
service.yml:
kind: Service
apiVersion: v1
metadata:
name: pwa-frontend
spec:
type: NodePort
selector:
app: MyApp
ports:
- name: nginx
port: 80
protocol: TCP然后:
$ kubectl apply -f service.yml验证创建了服务并分配了一个节点端口:
$ kubectl get service pwa-frontend
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
pwa-frontend 10.0.0.28 <nodes> 80:30781/TCP 26m步骤3:创建一个入侵资源
ingress.yml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: pwa-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
backend:
serviceName: pwa-frontend
servicePort: 80然后:
$ kubectl create -f ingress.yml步骤4:访问应用程序
通过运行以下命令,查找为应用程序服务的负载均衡器的外部IP地址:
$ kubectl describe ing pwa-ingress
Name: pwa-ingress
Namespace: default
Address: 192.168.99.100
Default backend: pwa-frontend:80 (172.17.0.2:80)
Rules:
Host Path Backends
---- ---- --------
* * pwa-frontend:80 (172.17.0.2:80)
Annotations:
rewrite-target: /每件事情似乎都运行良好,所有信息输出似乎都与本教程相对应。但现在:
$ curl 192.168.99.100
default backend - 404发布于 2017-09-27 06:32:39
我假设您通过minikube addons enable ingress部署了默认的nginx入口控制器。您所学习的教程专门针对,在这些集群中部署了一个不同的入口控制器,它将创建Google负载平衡器,并且还能够公开普通的TCP服务。您的minikube中的nginx入口控制器只能处理以下HTTP入口控制器:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: pwa-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: pwa-frontend
servicePort: 80修改文件后使用kubectl replace ingress.yml,然后再试一次请求。
发布于 2021-02-05 03:03:06
这个被接受的答案在测试版时已经过时了。这是最新版本
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pwa-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: pwa-frontend
port:
number: 80https://stackoverflow.com/questions/46439348
复制相似问题