Welcome to the Linux Foundation Forum!

Virtualbox Lab 3.1 Creating Loadbalancer: How do I get a public IP?

Hi,

Since I'm not on AWS or GCE, I'm not sure how to test this part in VirtualBox.
(I'm getting the sinking feeling that this entire class isn't really made to be taken in a VB environment....)

I'm in Section 3.1 of the lab step 5 where you create the loadbalancer.

kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 21h
nginx LoadBalancer 10.97.205.177 80:31130/TCP 4m49s

The load balancer just says pending all the time. Is there a way for me to mimic it or have my router issue a dhcp request or something to it?

I'm a little confused.

Bryan

Comments

  • chrispokorni
    chrispokorni Posts: 2,359

    Hi Bryan,

    For public IP on your VirtualBox VM... there may be some tutorials and articles out there on how to set it up.

    This is one of the reasons why it is much easier to complete the labs in the cloud - either on the free tier or paid tier (which is quite inexpensive for the amount of resources needed to complete all the labs).

    Without a public IP you can just curl the VM's private IP instead of public IP - for both NodePort and LoadBalancer type Services.

    Regards,
    -Chris

  • btanoue
    btanoue Posts: 59

    To be fair, I kind of paid for this class, and assumed that all the tools needed would be provided.
    I didn't think I'd have to struggle so much.

    I'd do the cloud offering, but my day job gives me weird times when I can work on it so I don't know how long it will take.

    I'm just a little disappointed that everything you need isn't included I guess.

    Chris, you have been very helpful, and I very much appreciate your help. I couldn't have even been to to this part of the lab without your help.

    Admin,
    I feel if you mention that you can use virtualbox, you should support it and explain how we can do the lab in that environment. It isn't covered very well. Just me feedback.

  • chrispokorni
    chrispokorni Posts: 2,359

    Hi Bryan,

    You will be better off by setting up the lab environment on GCP. You will be able to follow the labs without making any significant changes, and the outputs will be similar to the ones presented in the exercises (remember the step to install the kubernetes-cni 0.6.0). Start with the 1 year free GCP tier. The initial credit offered by Google will be more than enough for the duration of the 1 year. If for some reason you will take longer, the costs are minimal to continue with the same setup. Provided that you only start the VMs and you keep them running while you work on exercises and you stop them between uses, the costs may add up to a few dollars per week. From my experience, I did not get charged for the time that my VMs were stopped - so I only paid for the time in use.

    Kubernetes is a container orchestrator for the cloud, so why not learn how to use it in a cloud environment? :smile:

    When setting up your VMs in the cloud keep in mind the initial networking requirements - nodes need to talk to each other and talk to the internet. For this purpose, create a new custom VPC network (do not go with the predefined VPCs), assign to it a new custom firewall rule which allows all traffic (all protocols, all ports, from all sources, to all destinations) and provision your VMs inside this custom network.

    Good luck!
    -Chris

  • btanoue
    btanoue Posts: 59

    I'm so sorry for bothering you so much. I really am. You have no idea how bad I'm feeling that I can't get out of chapter 3 after a week.....

    So I created a google cloud platform account with a single VM.

    I'm not stuck again.

    root@kubemaster:/etc/apt/sources.list.d# apt-get install -y kubernetes-cni=0.6.0-00

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Version '0.6.0-00
' for 'kubernetes-cni' was not found

    oot@kubemaster:/etc/apt/sources.list.d# apt-get install -y \

           kubeadm=1.13.1-00 kubelet=1.13.1-00 kubectl=1.13.1-00
    

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    The following packages have unmet dependencies:
    kubeadm : Depends: kubernetes-cni (= 0.6.0) but 0.7.5-00 is to be installed
    kubelet : Depends: kubernetes-cni (= 0.6.0) but 0.7.5-00 is to be installed
    E: Unable to correct problems, you have held broken packages.

  • btanoue
    btanoue Posts: 59

    So I have to make progress as I'm trying to finish this thing by May.

    I went back to my VB environment since I can't get Kubernetes to install in GCP.
    I deleted the Loadbalancer service.
    Create a nodeport service and was able to access nginx on my browser.

  • chrispokorni
    chrispokorni Posts: 2,359

    The repository may have not been properly setup.
    Run a cat /etc/apt/sources.list.d/kubernetes.list and compare the output with the output line in step 4. They should be the same.
    Or the key may be an issue in step 5. Try to add it again.
    The run the update in step 6 and the 2 installs for step 7 (cni and kube... components).
    Regards,
    -Chris

  • btanoue
    btanoue Posts: 59

    deb http://apt.kubernetes.io/ kubernetes-xenial main

  • chrispokorni
    chrispokorni Posts: 2,359

    Do you have Ubuntu 16 LTS on your VM?

  • btanoue
    btanoue Posts: 59

    Made some head way. I don't know if google had an issue or something. But I logged in again and just up arrowed and ran the cni install and it went through. Hopefully this is the last snag.

Categories

Upcoming Training