我正在通过 this 教程在 minikube 上创建部署和入口控制器。当我按照教程中的说明跑步时,
curl --resolve "hello-world.info:80:$( minikube ip )" -i http://hello-world.info
我只是得到HTTP/1.1 503 Service Temporarily Unavailable
。
这是我的部署、服务、入口和自定义文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
labels:
app: example
spec:
replicas: 2
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: nginx
image: localhost:5000/example-app:latest
ports:
- name: web
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: example
spec:
ports:
- name: web
port: 80
targetPort: web
selector:
app.kubernetes.io/name: example
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: hello-world.info
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example
port:
number: 80
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
metadata:
name: arbitrary
# Example configuration for the webserver
# at https://github.com/monopole/hello
commonLabels:
app: example
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
这是
kubectl get ingress
的输出:
NAME CLASS HOSTS ADDRESS PORTS AGE
example-ingress nginx hello-world.info 192.168.49.2 80 3m29s
这是
kubectl get services
的输出:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
example ClusterIP 10.109.63.32 <none> 80/TCP 10m
如您所见,一切都已启动并正在运行。这是我的 nginx:
[jenia@archlinux ibn-battuta]$ kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-fvj4v 0/1 Completed 0 3h37m
ingress-nginx-admission-patch-d4xfn 0/1 Completed 1 3h37m
ingress-nginx-controller-7799c6795f-7qgsr 1/1 Running 0 3h37m
这是 nginx 503 的日志:
192.168.49.1 - - [29/Aug/2023:01:11:43 +0000] "GET / HTTP/1.1" 503 190 "-" "curl/8.2.1" 79 0.000 [default-example-80] [] - - - - e03c2a5e71db02f27f1afca0905c6c36
如果有人可以帮助我,我将不胜感激。
@杰尼娅·伊万诺夫
您可以在您的服务中更新
targetPort
和 selector
并进行验证吗?
apiVersion: v1
kind: Service
metadata:
name: example
spec:
ports:
- name: web
port: 80
targetPort: 80
selector:
app: example