Kubernetes (Minikube) external ip camera does not work

I am new to Kubernetes and I have been looking through searching and reading why my external ip does not allow.

I am running a mini cube on an ubuntu 16.04 distribution.

In the control panel services overview, I have this

my-nginx | run: my-nginx | 10.0.0.11 | my-nginx:80 TCP my-nginx:32431 | TCP 192.168.42.71:80 

When I do http, I get http://192.168.42.165:32431/ , I get the nginx page.

Service configuration is as follows

  # Please edit the object below. Lines beginning with a '#' will be ignored, # and an empty file will abort the edit. If an error occurs while saving this file will be # reopened with the relevant failures. # apiVersion: v1 kind: Service metadata: creationTimestamp: 2016-09-23T12:11:13Z labels: run: my-nginx name: my-nginx namespace: default resourceVersion: "4220" selfLink: /api/v1/namespaces/default/services/my-nginx uid: d24b617b-8186-11e6-a25b-9ed0bca2797a spec: clusterIP: 10.0.0.11 deprecatedPublicIPs: - 192.168.42.71 externalIPs: - 192.168.42.71 ports: - nodePort: 32431 port: 80 protocol: TCP targetPort: 80 selector: run: my-nginx sessionAffinity: None type: LoadBalancer status: loadBalancer: {} 

These are parts of my ifconfog

  virbr0 Link encap:Ethernet HWaddr fe:54:00:37:8f:41 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4895 errors:0 dropped:0 overruns:0 frame:0 TX packets:8804 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:303527 (303.5 KB) TX bytes:12601315 (12.6 MB) virbr1 Link encap:Ethernet HWaddr fe:54:00:9a:39:74 inet addr:192.168.42.1 Bcast:192.168.42.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7462 errors:0 dropped:0 overruns:0 frame:0 TX packets:12176 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3357881 (3.3 MB) TX bytes:88555007 (88.5 MB) vnet0 Link encap:Ethernet HWaddr fe:54:00:37:8f:41 inet6 addr: fe80::fc54:ff:fe37:8f41/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4895 errors:0 dropped:0 overruns:0 frame:0 TX packets:21173 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:372057 (372.0 KB) TX bytes:13248977 (13.2 MB) vnet1 Link encap:Ethernet HWaddr fe:54:00:9a:39:74 inet addr:192.168.23.1 Bcast:0.0.0.0 Mask:255.255.255.255 inet6 addr: fe80::fc54:ff:fe9a:3974/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7462 errors:0 dropped:0 overruns:0 frame:0 TX packets:81072 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3462349 (3.4 MB) TX bytes:92936270 (92.9 MB) 

Does anyone have pointers because I'm lost?

+11
source share
2 answers

The Minicube known problems explains that load balancing is not supported.

However, as explained in this problem, they are handled in the same way as services like NodePort:

Example

Launch the mini cup and start the nginx service

 $ minikube start $ kubectl run my-nginx --image=nginx --replicas=1 --port=80 $ kubectl expose deployment my-nginx --target-port=80 --type=LoadBalancer 

You can determine the URL of this load balancer in one of two ways. Hard way:

 $ echo http://$(minikube ip):$(kubectl get service my-nginx --output='jsonpath={.spec.ports[0].NodePort}') 

or easy way

 $ minikube service my-nginx --url 

Update - use the input controller

I found a blog post that describes how you can run the access controller on a miniback to provide load balancing.

So, run traefik input controller:

 $ kubectl create -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik.yaml 

Once this has been done, create Ingress as follows: route traffic based on the host name:

 $ cat ingress.yml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-nginx-ingress spec: rules: - host: my-nginx.192.168.99.100.xip.io http: paths: - path: / backend: serviceName: my-nginx servicePort: 80 $ kubectl create -f ingress.yml ingress "my-nginx-ingress" created 

The nginx service now displays at the following URL:

 http://my-nginx.192.168.99.100.xip.io/ 

Note:

+9
source

I assume that you are using minikube in virtualbox (there was no information how you started it and what OS you have).

When you create a service with type = LoadBalancer, you must also run minikube tunnel to expose LoadBalancers from the cluster. Then, when you run kubectl get svc , you will get the external IP address of LoadBalancer. Nevertheless, this is the IP address of the mini-cube, so if you want to set it externally from your computer, you must install some kind of reverse proxy or tunnel on it.

0
source

Source: https://habr.com/ru/post/1257687/


All Articles