I am enjoying the course so far, but we went straight into networking without doing any basics first – I am trying to run the simple-web.yml service locally on minkube so I can view the service from browser.
It works fine up to when I ‘kubectl apply -f simple-web.yml’.
But I would like to try and view the URL locally, if I do something like "kubectl expose deployment hello-svc –type=loadbalancer" I get an error like ‘deployments.extensions "hello-svc" not found’ … is there a way I can view the service locally?
Hi Adam. Glad you’re liking the course so far. A bit naughty of you skipping the intro stuff though 😉
Just kidding. With the info provided there are two or three things that spring to mind…
1. The imperative command that you are using
kubectl expose deployment hello-svc --type=loadbalancer appears to be trying to expose a Deployment called "hello-svc". In my examples, "hello-svc" is a Service, not a Deployment. If using my examples, the command should probably be
kubectl expose deployment hello-deploy --type=loadbalancer.
2. Another thing that jumps out is that you cannot define a LoadBalancer Service on minikube. They only work on cloud platforms such as AWS, Azure, and GCP.
3. What version of Kubernetes are you running on your minikube cluster?
$ kubectl version -o yaml should show you.
If you’re running an older version, the error might be because the YAML file in the repo is defining the Deployment object from the
app/v1 API group. Older versions of Kubernetes (prior to 1.9 I think) defined Deployments in the extensions API group. E.g. extensions/v2beta1. To get around this, you can trash your minikube cluster and build a new one with the
--kubernetes-version=v1.11.2 flag to force a specific version.
Finally, you can use
minikube ip to find the address of your minikube cluster that you can then use to connect to your Services etc.
I’m using Docker For Windows. For me I could reach the service using localhost in the browser after applying the lb.yml file.