微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问 rpi k8s 集群上的服务

如何解决如何访问 rpi k8s 集群上的服务

我在本指南的帮助下构建了一个 k8s 集群:rpi+k8s。我启动并运行了一些基本的 Nginx 服务,我可以从主节点卷曲到工作节点以获取 Nginx 欢迎页面内容

k exec Nginx-XXX-XXX -it -- curl localhost:80

我在以下 SO 帖子中尝试了以下建议:

link 1 link 2

但是,我仍然无法从本地计算机 (linux) 访问工作节点上的简单 Nginx 服务。我用过,NODE IP:NODE PORT。我还安装了 kubefwd 并运行了 sudo kubefwd svc -n Nginx-ns 但我没有看到预期的输出显示端口转发。任何帮助,将不胜感激。谢谢。

输出

NAME                TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/Nginx-svc   NodePort   10.101.19.230   <none>        80:32749/TCP   168m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/Nginx   3/3     3            3           168m

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/Nginx-54485b444f   3         3         3       168m

这里是 yaml 文件

kind: Namespace
apiVersion: v1
Metadata:
  name: Nginx-ns
---
apiVersion: apps/v1
kind: Deployment
Metadata:
  name: Nginx
  namespace: Nginx-ns
spec:
  selector:
    matchLabels:
      app: Nginx 
  replicas: 3
  template:
    Metadata:
      labels:
        app: Nginx 
    spec:
      containers:
      - name: Nginx 
        image: Nginx:1.19-alpine
        ports:
        - name: Nginxport
          containerPort: 80
---
apiVersion: v1
kind: Service
Metadata:
  name: Nginx-svc
  namespace: Nginx-ns
  labels:
    app: Nginx
spec:
  selector:
    app: Nginx
  ports:
  - protocol: TCP
    name: Nginxport
    port: 80
    targetPort: 80
    nodePort: 32749
  type: NodePort
  selector:
    app: backend

解决方法

您需要更新您使用了两个 nginx-svc 的服务 selector

删除以下部分:

  selector:
    app: backend

更新了service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  namespace: nginx-ns
  labels:
    app: nginx
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    name: nginxport
    port: 80
    targetPort: 80
    nodePort: 32749
  type: NodePort

然后,试试这个用于端口转发。

kubectl port-forward -n nginx-ns svc/nginx-svc 8080:80

模板是这样的:

kubectl port-forward -n <namespace> svc/<svc_name> <local_port>:<svc_port>

然后在浏览器中尝试使用 127.0.0.1:8080localhost:8080

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。