pet*_*wri 2 kubernetes nginx-ingress microk8s
在 Ubuntu 20.04.4 LTS 上运行 microk8s v1.23.3。我已经设置了一个最小的 pod+service:
kubectl create deployment whoami --image=containous/whoami --namespace=default
Run Code Online (Sandbox Code Playgroud)
这按预期工作,curl10.1.76.4:80给出了正确的答复whoami。我配置了一项服务,请参阅以下内容service-whoami.yaml:
apiVersion: v1
kind: Service
metadata:
name: whoami
namespace: default
spec:
selector:
app: whoami
ports:
- protocol: TCP
port: 80
targetPort: 80
Run Code Online (Sandbox Code Playgroud)
这也按预期工作,可以通过 上的 clusterIP 访问 pod curl 10.152.183.220:80。现在我想使用以下方式公开该服务ingress-whoami.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: whoami-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
defaultBackend:
service:
name: whoami
port:
number: 80
rules:
- http:
paths:
- path: /whoami
pathType: Prefix
backend:
service:
name: whoami
port:
number: 80
Run Code Online (Sandbox Code Playgroud)
入口插件已启用。
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
addons:
enabled:
ha-cluster # Configure high availability on the current node
ingress # Ingress controller for external access
Run Code Online (Sandbox Code Playgroud)
入口似乎指向正确的 Pod 和端口。kubectl describe ingress给出
Name: whoami-ingress
Labels: <none>
Namespace: default
Address:
Default backend: whoami:80 (10.1.76.12:80)
Rules:
Host Path Backends
---- ---- --------
*
/whoami whoami:80 (10.1.76.12:80)
Annotations: <none>
Events: <none>
Run Code Online (Sandbox Code Playgroud)
尝试从外部访问 pod 会curl 127.0.0.1/whoami给出404:
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?这个设置在几周前就起作用了。
好吧,想通了。我忘记ingress.class在注释块中指定。我更新了ingress-whoami.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: whoami-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: public
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /whoami
pathType: Prefix
backend:
service:
name: whoami
port:
number: 80
Run Code Online (Sandbox Code Playgroud)
现在一切正常。
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |