首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Minikube portainer externalName不工作

Minikube portainer externalName不工作
EN

Stack Overflow用户
提问于 2020-11-12 08:41:22
回答 2查看 139关注 0票数 0

我使用以下代码部署了portainer:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml

我之前创建了命名空间"portainer“。

我想通过入口访问portainer。

我使用externalName创建了服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    kind: Service
apiVersion: v1
metadata:
  name: portainer
  namespace: default
spec:
  type: ExternalName
  externalName: portainer.portainer.svc.cluster.local
  ports:
  - port: 9000

这是我的入口配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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“时,我遇到了这个问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/portainer   portainer:9000 (<error: endpoints "portainer" not found>)

有人能帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2020-11-12 11:30:40

创建clusterIP类型服务,而不是外部名称

票数 0
EN

Stack Overflow用户

发布于 2020-11-12 12:43:50

(<error: endpoints "portainer" not found>)是由于您没有将名称空间分配给已设置名称空间的ingress对象造成的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl api-resources --namespaced=true | grep ingress
ingresses                   ing          extensions                  true         Ingress
ingresses                   ing          networking.k8s.io           true         Ingress

因此,为了更改它,您必须将其分配给portainer名称空间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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对象中引用它。

然后,它将被分配给在此命名空间中创建的服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64800498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文