Dan*_*iel 12 kubernetes kubernetes-ingress kubernetes-service
我想要做的是在default命名空间中拥有一个服务,并在其他命名空间中拥有指向该服务的入口。我尝试实现如下所示的服务和 Ingress,但没有成功。
kind: Service
apiVersion: v1
metadata:
name: serviceX
namespace: default
spec:
type: ExternalName
externalName: serviceX.default.svc.cluster.local
ports:
- port: 123
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: web-ingress-test-vpndev
namespace: my-namespace
spec:
tls:
- hosts:
- abc.my-namespace.domain.com
secretName: tls-secret-my-namespace
rules:
- http:
paths:
- path: "/"
backend:
serviceName: serviceX
servicePort: 123
status:
loadBalancer:
ingress: {}
Run Code Online (Sandbox Code Playgroud)
我知道我可以在每个命名空间中实现该服务,但我想知道是否可以拥有单个服务。如果我尝试externalName在入口的处理程序中输入服务的名称backend->serviceName,则会收到错误消息,指出服务的名称只能包含数字、字母和“-”。
我不得不说,这不是一个好办法。因为不同 NS 中的所有 ingress 都会转换为 Nginx Rule 并在 ingress-controller pod 中生效。
如果你看一下 Nginx 规则(nginx.conf在 ingress-controller pod 中),你会看到 ingress 的每个块location都有nginx.conf变量set $namespace "****";,这意味着入口已被 NS 隔离
另外,如果您仍然想实现您的想法,可能需要修改入口控制器。
| 归档时间: |
|
| 查看次数: |
14855 次 |
| 最近记录: |