Would you like to learn how to install the Kubernetes Dashboard, configure Apache as a proxy, and control the user authentication using Apache?  In this tutorial, we are going to show you how to install the Kubernetes Dashboard and enable the use of Apache as the authentication proxy on a computer running Ubuntu Linux.

• Ubuntu 20
• Ubuntu 19
• Ubuntu 18
• Kubernetes 1.18

This tutorial will install a single-node Kubernetes cluster.

In our example, The Kubernetes master node IP address is 192.168.15.200.

Tutorial Kubernetes - Master node Installation

Install the list of required packages.

Copy to Clipboard

Install the Docker service.

Copy to Clipboard

Enable the Docker service during boot.

Copy to Clipboard

Edit the Docker service configuration file.

Copy to Clipboard

Add the following configuration at the end of the item named: EXECSTART

Copy to Clipboard

Here is the file before our configuration.

Copy to Clipboard

Here is the file after our configuration.

Copy to Clipboard

Create a System configuration file.

Copy to Clipboard

Here is the file content.

Copy to Clipboard

Enable the System configuration file.

Copy to Clipboard

Edit the configuration file named: MODULES.CONF

Copy to Clipboard

Add the following configuration at the end of this file.

Copy to Clipboard

Edit the FSTAB configuration file and disable the use of Swap memory.

Copy to Clipboard

Here is the file before our configuration.

Copy to Clipboard

Here is the file after our configuration.

Copy to Clipboard

Set a unique hostname.

Copy to Clipboard

Create a file to configure the required environment variables.

Copy to Clipboard

Here is the file content.

Copy to Clipboard

Reboot the computer.

Copy to Clipboard

Download and install the Kubernetes repository key.

Copy to Clipboard

Add the official Kubernetes repository.

Copy to Clipboard

Install the Kubernetes packages.

Copy to Clipboard

Download the required Kubernetes images.

Copy to Clipboard

Here is the command output.

Copy to Clipboard

Initialize the Kubernetes cluster.

Copy to Clipboard

Here is the command output.

Copy to Clipboard

Take note of the command to add nodes to the Kubernetes cluster.

Copy to Clipboard

Set the correct file permission on the Kubernetes configuration file.

Copy to Clipboard

Install the required network configuration.

Copy to Clipboard

By default, the Kubernetes master node is not allowed to run PODS.

Optionally, enable the Kubernetes master node to run PODS.

Copy to Clipboard

In our example, we are using a single-node Kubernetes cluster.

Tutorial - Kubernetes Dashboard installation

Install the list of required packages.

Copy to Clipboard

Download the required YAML file.

Copy to Clipboard

Install the Kubernetes Dashboard.

Copy to Clipboard

Here is the command output.

Copy to Clipboard

Create a service account for the Dashboard.

Copy to Clipboard

Configure the Cluster admin role to the Dashboard service account.

Copy to Clipboard

Create a service account for the Apache proxy.

Copy to Clipboard

Configure the Cluster admin role to the Apache proxy account.

Copy to Clipboard

List the Apache secret available on the Kubernetes server.

Copy to Clipboard

Here is the command output.

Copy to Clipboard

Notice that your secret's name will not be the same as ours.

Get the Apache secret token value.

Copy to Clipboard

Here is the command output.

Copy to Clipboard

Take note of the Apache token value.

In our example, this is the token value:

Copy to Clipboard

List the Dashboard service cluster IP address.

Copy to Clipboard

Here is the command output.

Copy to Clipboard

Take note of the cluster IP address and TCP port.

In our example, the Dashboard cluster is using the TCP port 443 and the IP address 10.107.55.24.

You have finished the required Dashboard configuration.

Kubernetes Proxy - Basic user authentication using Apache

On the Master node, install the Apache server.

Copy to Clipboard

Enable the required Apache modules.

Copy to Clipboard

Edit the Apache configuration file.

Copy to Clipboard

Add the following lines at the end of this file.

Copy to Clipboard

Create the Apache password file and add the first user account.

Copy to Clipboard

The system will request you to enter the password to the new user account.

Copy to Clipboard

Here is the file content.

Copy to Clipboard

To create additional user accounts, use the following command.

Copy to Clipboard

Create a private key and the certificate using the OpenSSL command.

Copy to Clipboard

Enter the requested information.

Copy to Clipboard

On the option named COMMON_NAME, you need to enter the IP address or hostname.

In our example, we used the IP address: 192.168.15.200

Convert the existing Kubernetes proxy certificate and its key to a single file using the format PEM.

Copy to Clipboard

Edit the Apache configuration file for the default website.

Copy to Clipboard

Here is the file, before our configuration.

Copy to Clipboard

Here is the file, after our configuration.

Copy to Clipboard

Change the IP address of the configuration items named PROXYPASS and PROXYPASSREVERSE to your Dashboard cluster IP address.

Change the token value of the configuration item named REQUESTHEADER to your previously created Apache secret token value.

In our example, we enabled the use of HTTPS using self-signed certificates.

Copy to Clipboard

In our example, we configured the use of Apache basic authentication.

Copy to Clipboard

Apache will proxy the HTTPS communication between the user and the Dashboard cluster IP address.

Copy to Clipboard

Apache will use a certificate and key automatically created during the Kubernetes server installation to perform mutual TLS authentication to the Dashboard.

Copy to Clipboard

The Apache server will add a header to all the packets sent to the Dashboard.

This header is named AUTHORIZATION BEARER and contains the secret token previously created to the Apache proxy.

Copy to Clipboard

Apache will also redirect HTTP users to the HTTPS version of the URL requested.

Copy to Clipboard

Restart the Apache service.

Copy to Clipboard

Open your browser and access the HTTPS version of the Apache server IP address.

In our example, the following URL was entered in the Browser:

• https://192.168.15.200

The Apache server will require you to perform the user authentication.

Kubernetes Dashboard Proxy Authentication

After a successful login, the Kubernetes Dashboard should be presented.

Kubernetes Dashboard

The Apache proxy will automatically perform the authentication on the Kubernetes dashboard using the feature named: AUTH HEADER.

Kubernetes dashboard Authorization bearer

You successfully finished the configuration of Apache as a proxy to the Kubernetes Dashboard.