我使用以下代码部署了portainer:
kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml
我之前创建了命名空间"portainer“。
我想通过入口访问portainer。
我使用externalName创建了服务
kind: Service
apiVersion: v1
metadata:
name: portainer
namespace: default
spec:
type: ExternalName
externalName: portainer.portainer.svc.cluster.local
ports:
- port: 9000
这是我的入口配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /portainer
pathType: Prefix
backend:
service:
name: portainer
port:
number: 9000
我不知道为什么,但当我调用"kubectl describe ing“时,我遇到了这个问题。
/portainer portainer:9000 (<error: endpoints "portainer" not found>)
有人能帮我吗?
发布于 2020-11-12 11:30:40
创建clusterIP类型服务,而不是外部名称
发布于 2020-11-12 12:43:50
(<error: endpoints "portainer" not found>)
是由于您没有将名称空间分配给已设置名称空间的ingress
对象造成的:
kubectl api-resources --namespaced=true | grep ingress
ingresses ing extensions true Ingress
ingresses ing networking.k8s.io true Ingress
因此,为了更改它,您必须将其分配给portainer
名称空间:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx
namespace: portainer
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /portainer
pathType: Prefix
backend:
service:
name: portainer
port:
number: 9000
有一个在部署过程中创建的服务(kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml
),所以不需要创建新的服务,您可以简单地在ingress
对象中引用它。
然后,它将被分配给在此命名空间中创建的服务:
Rules:
Host Path Backends
---- ---- --------
*
/portainer portainer:9000 172.17.0.3:9000)
Annotations: nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 47m nginx-ingress-controller Ingress portainer/ingress-nginx
Normal UPDATE 47m nginx-ingress-controller Ingress portainer/ingress-nginx
https://stackoverflow.com/questions/64800498
复制相似问题