我使用
ingress
提供的microk8s
插件。
$ microk8s version
MicroK8s v1.31.1 revision 7244
我想使用 nginx snippets 进行入口配置。 其背后的动机是实现OP在thisSO问题中尝试的目标。
默认情况下,入口配置为不使用片段。 其他人报告在使用该配置但未先启用它后看到错误。 但是,我没有遇到任何此类错误。 尽管如此,注释似乎被忽略了。 我这样测试它们,我仍然可以访问资源:
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: foo-ingress-bar
namespace: foo
annotations:
cert-manager.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/server-snippet: deny all;
在了解 configuration-snippet
配置选项之前,我尝试过代码片段的 many different variations,以及
allow-snippet-annotations
,但都无济于事。我尝试编辑入口配置图。
$ k get configmap -n ingress
NAME DATA AGE
kube-root-ca.crt 1 2d18h
nginx-ingress-tcp-microk8s-conf 1 2d18h
nginx-ingress-udp-microk8s-conf 0 2d18h
nginx-load-balancer-microk8s-conf 0 2d18h
$ k edit configmap nginx-ingress-tcp-microk8s-conf -n ingress
并添加了一个新的部分,保存成功。
data:
allow-snippet-annotations: "true"
但是,当我查看任何 ingress pod 的日志(以 k get pod -n ingress
列出)时,我收到以下错误:
I1028 14:27:38.275743 7 event.go:377] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"ingress", Name:"nginx-ingress-tcp-microk8s-conf", UID:"a521e9e9-add9-417b-938e-54463edfedaf", APIVersion:"v1", ResourceVersion:"299883", FieldPath:""}): type: 'Normal' reason: 'UPDATE' ConfigMap ingress/nginx-ingress-tcp-microk8s-conf
W1028 14:27:38.284327 7 controller.go:477] "allow-snippet-annotations" is not a valid TCP port number
我没有找到这个问题的答案。
有哪些方法可以使用 microk8s
启用片段? 为什么它需要“有效的 TCP 端口号”?
问候