如何解决如何访问 rpi k8s 集群上的服务
我在本指南的帮助下构建了一个 k8s 集群:rpi+k8s。我启动并运行了一些基本的 Nginx 服务,我可以从主节点卷曲到工作节点以获取 Nginx 欢迎页面内容:
k exec Nginx-XXX-XXX -it -- curl localhost:80
我在以下 SO 帖子中尝试了以下建议:
但是,我仍然无法从本地计算机 (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:8080
或 localhost:8080
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。