简体   繁体   中英

how to access service on rpi k8s cluster

I built a k8s cluster with help of this guide: rpi+k8s . I got some basic nginx service up and running and and I can curl from master node to worker node to get the nginx welcome page content using:

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

I tried following suggestions in the following SO posts:

link 1 link 2

However, I still can't access a simple nginx service on the worker node from my local computer (linux). I used, NODE IP:NODE PORT . I also installed kubefwd and ran, sudo kubefwd svc -n nginx-ns but I don't see the expected output where it would show the port forwards. Any help would be appreciated. Thanks.

Output:

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

And here is the yaml file:

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

You need to update your service nginx-svc where you have used two selector .

remove below part:

  selector:
    app: backend

Updated 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

Then, Try this one for port-forwarding.

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

Template is like this:

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

Then try in the browser with 127.0.0.1:8080 or localhost:8080

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM