Nutanix Karbon – a first look

Nutanix Karbon is a curated turnkey offering that provides simplified provisioning and operations of Kubernetes (aka K8s) clusters. Kubernetes is an open-source container orchestration system for deploying and managing container-based applications.

With the advent of Kubernetes deploying highly scalable and by default high available apps has never been easier then before. On the other hand Kubernetes is a whole new concept on how to deliver applications: learning Kubernetes and how this whole stuff works is not done in some few hours.

With Nutanix Karbon (now available as tech preview) you get one-click simplicity for your Kubernetes deployment.

Nutanix Karbon delivers the following benefits:

  • automated Kubernetes deployment & upgrades
  • allows Multi-K8s Cluster management
  • comes with Builtin monitoring with Prometheus
  • supported by the 90+ NPS scored Nutanix support
  • is 100% Kubernetes upstream code – no fork

Prerequisites for Nutanix Karbon

  • Prism Central 5.9 or later. (Multi-node Prism Central is not currently supported.)
  • Prism Element 5.6.2.x, 5.8.2.x, or 5.9.x
  • AHV hypervisor
  • Virtual IP address and the ISCSI data service IP address configured
  • The AHV cluster must be registered to Prism Central.
  • Karbon requires a minimum 120 MB of memory and 700 MB of disk space.
  • The cluster and Prism Central time zones must be synchronized.
  • NTP and DNS must be configured. (always a good idea)
  • IPAM or DHCP network with access to the internet or a preconfigured unauthenticated proxy setup with access to the internet.

Preliminary work

  • You have to create a managed network in your AHV cluster where you want to have the management IP addresses of your master, etcd and worker nodes.
  • you have to download the CentOS or Ubnutu karbon image from the nutanix support site and register the image in the image service
  • CentOS http://download.nutanix.com/karbon/0.8/acs-centos7.qcow2
  • the images in the image service have to have specific names:
    • Enter acs-centos if you choose the CentOS image.
    • Enter acs-ubuntu if you choose the Ubuntu image.
  • IMPORTANT: you have to import the image to Prism Central:
  • Under “Images” select “import Images”

import_image_pc

  • In my case I have only imported the acs-centos image into Prism Central:

import_image_pc2

Now you are ready to enable Karbon; therefore you go to Services and select Karbon:

PC_enable_Karbon1

  • then you just click “Enable Karbon”:

PC_enable_Karbon2

  • Now you are ready to create a K8s Cluster – just click “+ Create Cluster“:

PC_enable_Karbon3.png

  • Enter a name, select your AHV Cluster, the Kubernetes Version and the Host OS Image
  • If you cannot select the Host-OS image please verify that the name of the image is exactly as mentioned before.

wizard1INFO: you can select between the following k8s versions: 1.8.13, 1.9.6 and 1.10.3

  • Select the number of workers and their resource requirements and click Next: (For my test I leave the default values.)

wizard2

  • For now you can deploy one master and a separate etcd cluster with their respective resources:

wizard3

  • Nutanix Karbon in tech preview comes with “Flannel” as network provider. Here you also select the managed network you have created before. Enter the network information for the Service and the Pod network.

wizard4

  • Nutanix Karbon also automatically creates a storage class so you can use Nutanix Volumes as a ressource for persistent volumes for your deployments; enter username, password and the storage container where the volumes should be created:

wizard5

  • After you click “Create” the K8s cluster will be deployed:k8s_deploy2
  • After some minutes the cluster is up an running. if you have a local kubectl installed you can download the kubeconfig file to connect with your machine.

download_kubeconfig

In my case I just want to test the connection and replaced my local config file to get a connection to the cluster:

> copy .\Downloads\kubectl-81332d1b-1e4b-410c-4c75-9fb26674d88b.cfg .\.kube\config
  • Then you can try to run some commands to see if the connection is working:
kubectl get services --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 172.19.0.1 <none> 443/TCP 2d
kube-system kube-dns ClusterIP 172.19.0.10 <none> 53/UDP,53/TCP 2d
kube-system kubernetes-dashboard ClusterIP 172.19.203.118 <none> 443/TCP 11m
ntnx-logging elasticsearch-logging NodePort 172.19.86.203 <none> 9200:30951/TCP 2d
ntnx-logging kibana-logging NodePort 172.19.212.14 <none> 5601:30950/TCP 2d
  • now let’s  test a depoyment:
# kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
  • We also want to have a kubernetes dashboard; therefore we execute the following command:
# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
  • Now you can connect to the dashboard using the master IP address.

Tipp: To get the IP address just search for “master” in Prism Central Search.

https://<masterip>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy

  • Login with default username and password: admin / nutanix/4u
  • You can skip this dialog by pressing “skip”:2018-12-12 22_28_37-Sign in - Kubernetes Dashboard
  • And here we have the kubernetes dashboard!

2018-12-12 22_53_40-Overview - Kubernetes Dashboard

This concludes the blog post for Karbon. Again: nice work #Nutanix!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s