我想做的是在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: {}
我知道我可以在每个命名空间中实现服务,但是我想知道是否可以有一个服务。如果我尝试在入口的
externalName
处理程序中键入服务的backend->serviceName
,则会收到错误消息,说该服务的名称只能包含数字,字母和'-'。 最佳答案
我不得不说这不是一个好方法。因为不同NS中的所有入口都将转换为Nginx规则,并在入口 Controller 容器中生效。
如果您看一下Nginx规则(入口 Controller Pane 中的nginx.conf
),您会看到location
中的每个nginx.conf
块都有变量set $namespace "****";
,这意味着该入口已被NS隔离
另外,如果您仍然想实现自己的想法,则可能需要修改入口 Controller 。
关于kubernetes - 是否有可能从另一个 namespace 指向服务的入口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59305999/