Setting up a Kubernetes environment (k3s) on Ubuntu

You must set up a Kubernetes environment (k3s) so that you can install the server software on the Ubuntu Server. You can use the script that is provided with HCL OneTest Server to set up a Kubernetes environment (k3s).

Before you begin

You must have completed the following tasks:

  • Installed the following software:

    • OpenSSH server

    • Helm

  • Ensured that your computer has a Domain Name Server (DNS) resolvable host name to resolve the host name into a machine-readable IP address.

About this task

As part of the Kubernetes environment (k3s) set up, you can enable the Prometheus server to monitor your system resources by using metrics data.

Procedure

  1. Log in to the Ubuntu server using an SSH session.
  2. Add the software registry to Helm by running the following command:
    helm repo add hclsoftware https://hclcr.io/chartrepo/ot
  3. Run the following command to get the latest updates from the repository:
    helm repo update
  4. Run the following commands to fetch the scripts that are used to install Kubernetes:
    helm pull --untar hclsoftware/hcl-onetest-base --version 10.1051.0
    chmod +x hcl-onetest-base/*.sh
  5. Perform one of the steps described in the following table to install the k3s Kubernetes environment based on your requirement:
    Step description Step no

    To install the Kubernetes environment (k3s)

    Perform 5.a

    To install the Kubernetes environment (k3s) by overriding the default name

    Perform 5.b
    1. Run the following commands to install the Kubernetes with a default domain name that is either based on IP address or fully qualified hostname:
      Ubuntu version Commands to be run

      18.04

      $ cd hcl-onetest-base

      $ sudo ./ubuntu-init.sh

      20.04

      $ cd hcl-onetest-base

      $ sudo HOME=$HOME ./ubuntu-init.sh

    2. Run the following commands to install the Kubernetes environment (k3s) by overriding the default name:
      Ubuntu version Commands to be run

      18.04

      $ cd hcl-onetest-base

      $ sudo INGRESS_DOMAIN={onetest.}myorg.com ./ubuntu-init.sh

      20.04

      $ cd hcl-onetest-base

      $ sudo INGRESS_DOMAIN={onetest.}myorg.com HOME=$HOME ./ubuntu-init.sh

    Where:
    • {onetest.} is a sub-domain name that you specified for the server. For example, testenv.
      Note: The sub-domain must consist of lowercase alphanumeric characters, -(hyphen) or .(period). Also, the value must start and end with an alphanumeric character.
    • myorg.com is the domain name of your organization. For example, hcl.com

    You can access the product through a web browser by using any of the following methods:
    • Fully Qualified Hostname: When the server is configured, you can use hostname -f command to get the fully qualified host name defined in the DNS to access HCL OneTest Server. For example, onetest.myorg.com

    • IP address: You can use the IP address to access HCL OneTest Server when you cannot create a specific DNS record for the server. For example, ip-address.nip.io.

    On completion of the ubuntu-init.sh script, a namespace with the name test-system is created to install the server software and the output displays the following information on the command-line interface:

    • The INGRESS_DOMAIN that is in use. This is the URL from where you can access HCL OneTest Server. You must use this value for the global.hclOneTestIngressDomain parameter in step 2 in the server installation topic.

    • The DNS information that the Kubernetes cluster uses to resolve names.

    • Certificate Authority (CA) that you must import into the browser to prevent certificate errors.

      You can run the following command to get the certificate from the system:
      kubectl get secret ingress -n test-system -o jsonpath={.data.ca\\.crt} | base64 -d
    • Instructions to confirm whether the Kubernetes environment has started.

      You can refer to the What to do next section for more details on how to verify that the Kubernetes environment has started.

  6. Perform one of the following options to configure a firewall:
    • Run the following script to configure the firewall that allows traffic on cni0 and port 443:
      Ubuntu version Command to be run

      18.04

      $ sudo ./ubuntu-firewall.sh

      20.04

      $ sudo HOME=$HOME ./ubuntu-firewall.sh

      Note: You must consult your network administrator before you run this script, and confirm whether the firewall is compatible with your corporate policy.
    • Update the firewall that allows traffic on cni0 and port 443, if your Ubuntu server is already configured with the firewall.

  7. Optional: Run the following command to enable the Prometheus server to monitor your system resources by using metrics data:
    ./service.sh expose prometheus
    Important: The Prometheus metrics are not protected, thus, any information logged into the Prometheus server might be accessible by anyone who has or discovers the <server-url>/prometheus URL.

Results

You have set up the Kubernetes environment on Ubuntu.

What to do next

You can perform the following tasks:
  • Log in to the server host system again after the installation process is completed so that changes to the group membership are applied.

    Note: You can run the kubectl get pods -A command to verify that the Kubernetes environment is working. After a while, the status of the pods display a Running or Complete state.
  • Install the server software. See Installing the server software on Ubuntu by using k3s.