You are on page 1of 18

Nutanix Karbon Guide

0.8
1
Overview
Note: Nutanix Karbon 0.8 is in Technical Preview and should not be used in a production environment. For
support, contact your account team.

Nutanix Karbon is a curated turnkey offering that provides simplified provisioning and operations of
Kubernetes clusters. Kubernetes is an open-source container orchestration system for deploying and
managing container-based applications.
Karbon leverages the CentOS and Ubuntu Linux-based operating systems for Karbon-enabled
Kubernetes cluster node creation. Linux containers provide the flexibility to deploy applications in different
environments with consistent results.
The Karbon web console simplifies the deployment and management of Kubernetes clusters with a
simple GUI and built-in event monitoring tools. Kibana, the built-in add-on, lets you filter and parse logs for
systems, pods, and VMs. Karbon also leverages Pulse, Prism's health-monitoring system, which interacts
with Nutanix Support to expedite cluster issue resolutions.
Enabling Karbon involves launching it through Prism Central and logging into Karbon to create clusters.

Prerequisites
The Nutanix cluster must meet the following requirements prior to enabling Karbon:
Cluster Requirements
• Prism Central 5.9 or later.

Note: 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 cluster must be registered to Prism Central.
• Karbon requires a minimum 120 MB of memory and 700 MB of disk space in Prism Central.
• The cluster and Prism Central time zones must be synchronized.
• NTP and DNS must be configured.
• IPAM or DHCP network with access to the internet or a preconfigured unauthenticated proxy setup with
access to the internet.

Table 1: Karbon Port Requirements

TCP Port Description

22 Prism Central (PC) to VM communication.

443

2379 PC to etcd VM validation.

Karbon | Overview | 2
TCP Port Description

9440 Kubernetes Persistent Volume (PV) creation and iSCSI /


iSNS PV access.
3260
3205

Proxy Requirements
The following domains should be whitelisted if an unauthenticated proxy is used in Prism Element:
• hub.docker.com
• gcr.io
• k8s.gcr.io
• quay.io
• docker.elastic.co

Karbon | Overview | 3
2
Enabling Karbon

Enable Karbon to create Kubernetes clusters.

1. Log into Prism Central.

2. Click on the Entities tab.

3. In the Entities menu, click Karbon.

Figure 1: Enable Karbon Window

4. Click Enable Karbon in the main console window.

Note: Karbon may take up to two minutes to launch.

5. Once you receive the message that Karbon is successfully enabled, click the here link in the message
to log into the Karbon Console.

Figure 2: Go To Karbon Console Window

Uploading Images
Deploying Kubernetes clusters in Karbon requires a CentOS or Ubuntu image. You must choose from
either of the two Linux distributions and upload the images from Prism Central. The following versions are
supported for Karbon:
• CentOS versions 7.5.1804.
• Ubuntu version 16.04 only.

Karbon | Enabling Karbon | 4


1. Log into Prism Central.

2. Click the Explore tab.

3. Select Images.

4. On the Images page, click Add Image.

Caution: You must use one of the images provided by Nutanix.

5. Follow steps to add the image URL, or skip to Step 7 to add the image as a file.

a. Click URL under Image Source.

Figure 3: Add Images Window

b. Paste the URL for one of the following:


• CentOS http://download.nutanix.com/karbon/0.8/acs-centos7.qcow2
• Ubuntu http://download.nutanix.com/karbon/0.8/acs-ubuntu1604.qcow2
The Image URL is added, and the details panel appears.

Figure 4: Image URL Added

Karbon | Enabling Karbon | 5


c. Proceed to Step 7.

6. Select Add File in the Image Source window.

a. Download the Ubuntu or CentOS image by clicking on one of the following URLs:
• CentOS http://download.nutanix.com/karbon/0.8/acs-centos7.qcow2
• Ubuntu http://download.nutanix.com/karbon/0.8/acs-ubuntu1604.qcow2
b. In the Image Source window, click + Add File.

Figure 5: Add Image File

c. Select the downloaded image file.


The Image file is added, and the details panel appears.

Karbon | Enabling Karbon | 6


Figure 6: Image File Added

7. In the Image Name field, replace the image name with one of the following:

Caution: You must use one of the following image names to create the cluster.

• Enter acs-centos if you chose the CentOS image.


• Enter acs-ubuntu if you chose the Ubuntu image.

8. Select Disk as the Image Type.

9. Click Save.

Deploying a Kubernetes Cluster


Create a Kubernetes cluster in the Karbon web console by configuring a Kubernetes cluster's settings.

1. In the entities tab, click Karbon in the menu pane.

2. Click the here link in the displayed message.

Figure 7: Karbon Successfully Enabled Message

Karbon | Enabling Karbon | 7


3. Log into the Karbon web console using your Prism credentials.

Note: You do not need to log in if you've already logged into Prism Central.

4. Click Create Cluster.


The Create Cluster page appears.

Figure 8: Name and Environment Configuration Window

5. Do the following in the indicated fields to setup the Name and Environment:
• Name: Choose a name for your cluster. The name must start with a letter or a number followed by
up to 40 lowercase or uppercase letters, numbers, or hyphens (cannot end with a hyphen).
• Cluster: Choose which Nutanix cluster you'd like to run the Kubernetes cluster on.
• Kubernetes Version: Choose from one of three Kubernetes versions (1.8.13, 1.9.6, or 1.10.3).
• Host OS Image: Select the Linux distribution of the uploaded image (centos or ubuntu).

6. Click Next.
The Worker Resources page appears.

Figure 9: Worker Configuration Window

7. Do the following in the indicated fields to configure Worker Resources:


• Number of Workers: Enter the number of Kubernetes worker nodes (default is three nodes).
• Memory: Enter the memory capacity per node (recommended 8 GiB per worker node).
• Size: Enter the hard disk size (recommended 120 GiB per worker node).

Karbon | Enabling Karbon | 8


• VCPU: Enter the number of vCPUs per node.

Note: When choosing memory, CPU, and disk size, the Kubernetes cluster deployment might fail if
available capacity is exceeded on any underlying hardware. This is also applicable to master and etcd
resources in the following steps.

8. Click Next.
The Master Configuration page appears.

Figure 10: Master Configuration Window

9. Do the following in the indicated fields to configure the Master Resources:

Note: Only single master node deployments are supported for Technical Preview.

• Memory: Enter the memory capacity for the master node (recommended 4 GiB).
• Size: Enter the hard disk size for the master node (recommended 120 GiB).
• VCPU: Enter the number of vCPUs for the master node

10. Do the following in the indicated fields to configure the etcd Resources:
• Number of VMs: Select the number of etcd VMs (three recommended).
• Memory: Enter the size of etcd resources (recommended 8 GiB).
• Size: Enter the hard disk size per etcd VM.
• VCPU: Enter the number of VCPUs per etcd node.

11. Click Next.


The Network page appears.

Karbon | Enabling Karbon | 9


Figure 11: Network Configuration Window

12. Do the following in the indicated fields to configure Network settings:


• Network Provider: Select the network plug-in. Currently, only Flannel is supported.
• VM Network: Choose a network for deploying the etcd, worker, and master VMs.

Note: The VM network should be configured with IPAM or DHCP.

• Service CIDR: Enter an IP address range within your network range (RFC-1918) in CIDR notation,
or use the default values. This will be the IP range on which services are exposed.

Note: The Service CIDR and Pod CIDR must not overlap with the VM Network IP range or with each
other.

• Pod CIDR: Enter an IP address range within your network range (RFC-1918) in CIDR notation that
will be used for pod-to-pod communication, or use the default values. All pods in the cluster will be
assigned an IP address from this range.

Note: Pod CIDR is referred to as clusterIP in Kubernetes configuration files.

13. Click Next.


The Storage Class page appears.

Note: Some storage will be automatically provisioned for system cluster logs based on the cluster's size.

Karbon | Enabling Karbon | 10


Figure 12: Storage Class Configuration Window

14. Do the following in the indicated fields to configure Storage Class settings:
• Storage Class Name: Enter the name for the storage class. The name must start with a letter or
a number. Only lowercase alphanumeric characters, hyphens, and periods are allowed (maximum
253 characters).
• Prism Element Cluster: Select the target cluster for allocating storage for stateful pods.
• Cluster Username: Enter your Prism Element username.
• Cluster Password: Enter your Prism Element password.
• Storage Container Name: Select the storage container that will be used for the storage.
• File System: Select the file system that the storage class will use (xfs or ext4).

Note: Xfs is not supported for Ubuntu during Technical Preview.

15. Click Create.


The new cluster will appear on the Karbon home page. A progress bar will display the deployment's
progress in the Status field.

16. Hover over the Status field to display a tooltip with progress details.

Download the Kubeconfig


Before you begin
Ensure that you've downloaded kubectl to the machine from which you'll manage the cluster.

Download the Kubernetes cluster configuration file (Kubeconfig) to your machine to deploy applications on
your cluster using kubectl.

Karbon | Enabling Karbon | 11


1. Log into Karbon.

2. Select a cluster from the list.

3. Click Download kubeconfig.


The kubeconfig file is downloaded on your machine. The file can be used for running kubectl
commands against the deployed Kubernetes cluster.

4. Replace kubeconfig with the downloaded file's path and file name, and run the following command.
$ export KUBECONFIG=/path/to/kubeconfig

The kubeconfig environment variable is set.

5. Test the cluster by running the following commands.


$ kubectl cluster-info
$ kubectl get nodes
$ kubectl get pods --all-namespaces
3
Karbon Layout
The Karbon GUI displays dynamically updated information about each Kubernetes cluster.
Cluster details
The Karbon home page includes the following sections and options:
• Create a new cluster with the Create Cluster button.
• Delete a cluster using the Delete Cluster button.
• Download the Kubernetes configuration file to your client by clicking Download kubeconfig. Doing this
will allow you to run kubectl commands against the Kubernetes cluster.
Clicking on any cluster's name on the Karbon page takes you to the cluster Summary page. The menu
pane includes the cluster's name and the following tabs: Summary, Storage Class, Volume, and Add-On.
The home page also includes a table with the following details of every cluster.

Figure 13: Karbon Home Page

Name Description

Name Name of the cluster.

Worker Count Number of worker nodes.

Version Kubernetes version (v1.8.13, v1.9.6, or v1.10.3).

Status A cluster's status is either Running or Cluster


not deployed. During deployment, a progress bar
displays progress.

Image Image used for the cluster (centos or ubuntu).

Summary
Clicking on a cluster's name on the Karbon page takes you to the Summary page. The Summary page
includes the following information about the cluster in the Properties fields.

Karbon | Karbon Layout | 13


Figure 14: Summary Page

Name Description

Name The cluster's name.

Total Memory Total memory allocated to all of the nodes in the


cluster.

Total Disk Space Total disk space allocated to all of the nodes in the
cluster.

Total vCPU Total vCPU allocated to all of the nodes in the


cluster.

Master, etcd, and Worker node tiles include the following details about each of these node types.

Name Description

Number Quantity of nodes.

Memory Total available memory allocated for the node type.

Disk Space Amount of disk space allocated to each node type.

VCPU Number of vCPUs allocated to all node types.

Storage Class
The Storage Class page includes a table with the following details about every storage class.

Karbon | Karbon Layout | 14


Figure 15: Storage Class Page

Name Description

Name The name of the storage class.

Container Name The name of the storage container used on the PE


cluster.

Cluster The name of the underlying cluster.

File System The selected file system (xfs or ext4).

The page also includes Create Storage Class and Delete Storage Class action buttons.
Volumes
The Volume page includes Create Volume and Delete Volume action buttons, and a table with the
following details about every volume.

Figure 16: Volume Page

Name Description

Claim Name Name used to attach storage to pods (maximum


253 characters). The name must start with a
letter or a number. Only lowercase alphanumeric
characters, hyphens, and periods are allowed.
Namespace Selected Kubernetes namespace (available options
are displayed).

Storage Class Storage class used by the volume.

Size The volume's size in GiB.

Status Persistent volume status (Pending, Available,


Bound, Release, Failed).

Karbon | Karbon Layout | 15


Name Description

Access Mode Only one user permission option is available during


the Technical Preview (ReadWriteOnce).
Reclaim Policy Delete is the only available option during Technical
Preview.

Add-ons
The Add-on page lists the add-ons installed on the Kubernetes cluster. Karbon comes with a built-in
Logging add-on powered by Kibana. The Add-on page includes a table with the following details.

Figure 17: Add-ons Page

Name Description

Name Name of the add-on.

Size Disk space allocated to the add-on (GiB).

Version Add-on version.

State Status of the add-on.

Logging Add-On
The Logging add-on is powered by Kibana. The Kibana dashboard has a custom tab for the LogTrail plugin
that displays data for the selected namespaces. By default, LogTrail is configured to display logs for the
system namespaces of the Kubernetes cluster: kube-system and ntnx-logging.

Figure 18: Kibana Add-On

Karbon | Karbon Layout | 16


Settings
The Settings filter displays logs for the selected entity. The hostname is displayed in orange and the pod
name is displayed in blue. Click the colored text to filter by pod or hostname.
The following options can be selected from the Settings tab for logging:

Setting Description

kubernetes-* (Default) Displays logs for pods running in the kube-system


and ntnx-logging namespaces.

systemd-* Displays logs for the kubelet master and worker


services of every node.

etcd-* Displays logs from etcd services running on etcd


VMs.

All Systems
The All Systems tab displays logs from all hosts by default, but can also be used to run select logs for a
specific host.

Karbon | Karbon Layout | 17


4
Known Issues

The following are the known issues in this release.


• ENG-152039 Karbon does not check IPAM or DHCP networks for available IP addresses before
starting cluster deployment.
• ENG-170742 Karbon does not validate available resources on the underlying cluster before starting
Kubernetes cluster deployment.
• When configuring the storage class, Kubernetes displays the Prism Element password in clear text.

You might also like