首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >microk8s入口导致操作超时

microk8s入口导致操作超时
EN

Stack Overflow用户
提问于 2021-04-20 12:05:54
回答 1查看 416关注 0票数 1

为什么每次我尝试连接到MicroK8s上公开的节点端口服务时,连接都被拒绝?

以下是以下部署、服务和入口:

代码语言:javascript
复制
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx-container
        image: 'nginx'
        ports:
        - containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  selector:
    app: nginx
  type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx.info
  labels:
    app: 'nginx'
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: 'nginx.plz'
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: 'nginx'
            port:
              number: 80

我在/etc/hosts文件中也包含了下面这行代码:

代码语言:javascript
复制
127.0.0.1 nginx.plz

但是,当我尝试访问该站点时,我仍然收到以下错误:

代码语言:javascript
复制
 curl -v -H "host: nginx.plz" 10.152.183.60 

*   Trying 10.152.183.60...
* TCP_NODELAY set
* Connection failed
* connect to 10.152.183.60 port 80 failed: Operation timed out
* Failed to connect to 10.152.183.60 port 80: Operation timed out
* Closing connection 0
curl: (7) Failed to connect to 10.152.183.60 port 80: Operation timed out

有人熟悉在microk8s上设置这个吗?我确实看到了其他一些问题,比如这个:https://serverfault.com/questions/1032572/microk8s-deploy-application-not-working,但它没有解决方案

编辑:我也启用了microk8s入口。

EN

回答 1

Stack Overflow用户

发布于 2021-04-20 13:30:07

我刚刚在我的本地microk8s上部署了您的配置,并且能够访问端点。我看到的唯一区别是我启用了入口入口(https://microk8s.io/docs/addon-ingress),在启用入口附加组件的情况下,它创建了一个名为Microk8s的名称空间,带有入口控制器,它监视新的入口规则(您已经定义了它们),并配置其底层代理来制定相应的路由。

要在microk8s上启用入口,请执行以下操作,其他所有事情都由Microk8s处理。我们的入口资源有规则,入口控制器将映射它。

代码语言:javascript
复制
microk8s enable ingress
代码语言:javascript
复制
k get all  -n ingress
NAME                                          READY   STATUS    RESTARTS   AGE
pod/nginx-ingress-microk8s-controller-rmgs4   1/1     Running   1          1d

NAME                                               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/nginx-ingress-microk8s-controller   1         1         1       1            1           <none>          1d

还要注意,您的入口插件可以配置为公开TCP和UDP服务,方法是分别编辑nginx- ingress -tcp-microk8s-conf和nginx- Ingress -udp-microk8s-conf ConfigMaps,然后在入口控制器中公开端口。

代码语言:javascript
复制
k get cm -n ingress
NAME                                DATA   AGE
nginx-load-balancer-microk8s-conf   0      1d
nginx-ingress-udp-microk8s-conf     0      1d
nginx-ingress-tcp-microk8s-conf     8      1d
ingress-controller-leader-public    0      1d

启用通信量的另一种解决方案是启用金属负载均衡器。(https://microk8s.io/docs/addon-metallb)。完成后,检查您的入口/服务(kubectl get svc/ingress),它应该显示您的端点,这两个解决方案中的任何一个都应该在没有太多人工干预的情况下工作。

代码语言:javascript
复制
curl http://10.152.183.102:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67172297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档