Kubernetes Infrastructure Orchestration - Operations

1. Introduction

K3S is a highly available, Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
 
Edge is fast becoming a reality, and k3s, a fully compliant Kubernetes distribution, is built ground up to allocate resource constraint Edge environments.
 
Using ZEDEDA, one can provision and manage the k3s Infrastructure at the Distributed Edge, using zero-touch provisioning capabilities of ZedControl and zero-trust operating system built for the Edge, the EVE-OS.
 

2. Prerequisites

The steps are to obtain a 'remote connect manifest endpoint' from the third-party application workload management solution like SUSE Rancher.
  • Step 1 > Login to the Rancher server login page by providing the credentials.
Note: The Rancher server is currently hosted and managed by the user.
 
A_MGFjZjlkZDY2YjhlM2JmOeCh3jjczwJe7OCqJIzqELaKIJPOzB4Cr5TpPt69D89YZW7pa29SWgbQn8pDbSnsB7LU2PzwCnQqSs6qTztoUc3o-KoQzc3OGQ998vzywng_.png
 
  • Step 2 > Click on 'Add Cluster' on the 'Clusters' screen.
 
A_MGFjZjlkZDY2YjhlM2JmOWtYiqKzYv1E0lbYN36h3w2eLOS3mINaHtJdbwvQafdLbIZQZnIpeIR8Z8cSWLznp9-sn5IyVbIqc4HEbwblWRfWnyiwN-ocGJpALBrVVhhl.png
 
  • Step 3 > Click on 'Other Cluster'.
 
A_MGFjZjlkZDY2YjhlM2JmOSm3OO5ta0UmsSCGeBvZYoTL7uDNZ5owYshxZz4mueSzxpGbHLYQe4hGmSsP9xo_ebndo0-a3sBt5ahlsh7Q6sRS4BPeCrfzAOYHd6Jo3bZq.png
 
  • Step 4 > Enter the cluster name. An example is shown below.
 
A_MGFjZjlkZDY2YjhlM2JmOYKFzwQw9bZBqVar2QPo9qZnAXJGwxQ5-6mh3Mvqf-xmuvOV2kGTosepYOXpX1AWxmW4zGVgiGLrXm9FD3LZZHm9IqAPxIdwfW-EDeKKCql5.png
 
  • Step 5 > After filling all the required fields, copy the remote connect endpoint URL. Using this endpoint URL while creating the cluster manually in ZedControl (section 3.1).
 
A_MGFjZjlkZDY2YjhlM2JmOetC9X-s90KXX1AVPAKmXyImRgN-pNAoVBBYfXXI89k5jzsjCVDxKmUKHZjqJSXcUEEtcCcLGlqV9uPHxB8sbbjy2FYtvtgqkissdGItUlGn.png
 

3. Operations using ZedUI

3.1. Create

After logging in to ZedControl, click on the 'Cluster Instances' (Cluster_instance__1_.png) icon from the left navigation.
 
Note: Onboarding edge nodes and appropriately tagging them in ZedControl is required before, which will be used to create a cluster that is already onboarded onto ZedControl and has been appropriately tagged.
 
A_MGFjZjlkZDY2YjhlM2JmORGxRPN0eW2pR6wumFwnjwO5Yk4ceEUqfBTcVmjDEao4d1g7SOIlb5kr6uVVfMpu9aa9bbIsc2TOn0NCksvM11iQt59DyVDeRy_cB-UkZUOP.png
 
  • Step 1 > After clicking on the 'Cluster Instances' from the left navigation, click the Add (Add_icon.png) icon at the top right corner to trigger the new 'Add Cluster Instance' flow.
 
A_MGFjZjlkZDY2YjhlM2JmOWZWeOxTLgSjrYWOiclv2E0kPgTBRp-aGul1yDSjw8nhhWTNVC__2QAfUJhMb9PAZyBmv7kclUNPbG5Ku1NdllBOAphTwhBAW-ExCI6XqTae.png
 
  • Step 2 > Populate the input field values for the 'Identity' section, as instructed in the table.
  • Step 3 > Add appropriate tags and click on the Add Tag (Add-tag-icon__1_.png) icon.
 
A_MGFjZjlkZDY2YjhlM2JmOSg6HtkoLzjIJ7C25MgD2l5_MQQsv6NN7DDQmJe-I36x6lHxQMhOEXlqeVzn6MlESMbNOR2-zqFNfvPcZQJmQGAwaRki-5IFS3JrEQLJlgQE.png
Input Field Value
Name(*) Provide a unique name for a cluster in your enterprise.
Title(*) This is user-defined and can be changed.
Description An optional explanation of what the cluster instance is going to be used for.
Tags Enter the appropriate key-value pair, which can be used for later identification of this cluster.
 
  • Step 4 > Select the appropriate project where the edge nodes that will make up the cluster instance have been added.
  • Step 5 > Choose the edge nodes for matching tags and click on the Add Tag (Add-tag-icon__1_.png) icon.
 
A_MGFjZjlkZDY2YjhlM2JmOTd58Hu3sBqzpqaFyn1ChgRZkgoTDSjuj2V4OKQjL6KvNvBB1_3aXZjTKGX2Gmhmwv_aQAYrjiIqTNM-SfKPpwPx4lBGUDWr0MPXESQrJ1ED.png
 
  • Step 6 > Click the checkbox to choose the auto-deploy Network Instances if required.
  • Step 7 > Provide the network instance identity details, as instructed in the table.
  • Step 8 > Add appropriate tags and click on the Add Tag (Add-tag-icon__1_.png) icon.
 
A_MGFjZjlkZDY2YjhlM2JmOZ6NYp5tS02ZAUbIzuuuQKULynyh_O8nEGa4SKugIUdWWZ0N9BD4Q73BGPSpFvk3w4no-VWhZuIoKTvmgmUiVdafUUcFXgFaIzgljHEO8TGc.png
Input Field Value
Network Instance Name Prefix(*) Provide the network instance name.
Network Instance Title Prefix(*) This is user-defined and can be changed.
Tags Enter the appropriate key-value pair, which can be used for later identification of this cluster.
 
  • Step 9 > Provide the 'Kind' details, as instructed in the table.
 
A_MGFjZjlkZDY2YjhlM2JmOaF4QNcxMZKySVJEFZV8oU-7ITfSY7pc9FNY8NeQFmx_KBWCkOi1wAXr_Aq2IIvfuF46XdEWkgsr9jONHMMhsIL-gzsT7QPojfXx49j4df5f.png
 
  • Step 10 > Provide the 'Kind' details, as instructed in the table.
  • Step 11 > If you select 'Port Tag Name,' the matching tag appears as shown.
 
A_MGFjZjlkZDY2YjhlM2JmORB_nTI0HQGPtC8ZoNFzdzeYivgDwexEOWpwcQBOK9FDixvwb3f5nr41Yd0coA7k1NAnfcZw4cgBN5_XZ_j0qtQaYmwFAG_w5hRDdGdd1jh7.png
Input Field Value
Kind(*)
This is a type of network. Select one of the Network Instance from the following dropdown list:
Local–A Local network is the simplest Layer 3 (L3) network. Remote access is available solely through the NAT.
Switch–Layer 2 (L2) networks are straight bridged networks. Only one network port may be connected to the network at any time to avoid spanning tree issues.
Cloud (Beta)–A Cloud network is an L3 network with a VPN connection.
Port(*) Select the appropriate option from the dynamic dropdown list once you select the edge node.
Addressing
Select one of the IP Address formats from the following dropdown list:
  • V4–applicable only when you select either 'Local' or 'Cloud (Beta)' from the 'Kind' field
  • V6–applicable only when you select 'Local' from the 'Kind' field
  • Crypto V4–applicable only when you select 'Mesh (Beta)' from the 'Kind' field
  • Crypto V6–applicable only when you select 'Mesh (Beta)' from the 'Kind' field

 

  • Step 12 > Select the edge application you want to run on the server and agent node.
  • Step 13 > Choose the 'Network Instance Assignment Method' from the list.
 
A_MGFjZjlkZDY2YjhlM2JmOUqK0CXWl1BYZZANcABWeQpOfM52BQzUO5KV6xjTN54ILAjF5FHNTupX-8ZqBgeI41u5OVutL5TvGPnRk8ER6ngeZzB_0Siu9wDP718TUtdx.png
Input Field Value
Server/Agent Node Edge App (*) Select the edge application (VM images with k3s bundled) that will run on the server or agent node.

 

  • Step 14 > You can choose 'Default' or 'Tag.'
Default–If there is no specific network instance configuration available, you can choose the default network instance of the edge node. In this case, the Default network instance is used for connecting with the Cluster network.
 
Tag–you will need to specify an appropriate tag. The tag must be the same as you used while creating the switch network instances on that edge node. The network instance(s) with that tag will be picked up on all edge nodes of the cluster to connect with the Cluster Network.
 
Note: To read more about creating the 'Switch' type network instance, click here.
 
A_MGFjZjlkZDY2YjhlM2JmOXerLEqyNfp8PSMouRCNZ4myCO_nGz8UMlzaaoPwE5MN8zukpSWSvAcPMU3ZozHIDfcbNQK9wSJ6rbrKMlIwHeMlE-bQ3Y8aUFIbAioGcBMb.png
 
  • Step 15 > If you select 'Tag,' the matching tag appears as shown. Provide the tags to choose or filter the network instance for the particular application instance (in case a custom network config is provided, then the tags at this step must be the same as step 8).
 
A_MGFjZjlkZDY2YjhlM2JmOVA1QVXKtUuMxbpL_RrKrUNrUfKCR-RgJrUVXxJIR7ASCruMZD3i_YrZlRd6-F2DElKw2pGsqGZsVfR9V1fV0yKHvF884w_EkCdtHBmp0Aj4.png
 
The following sections cover the cluster configuration details.

3.1.1. Manual Cluster Configuration

  • Step 16a > Click on Manual.
  • Step 17a > Paste the 'Remote Connect Manifest Endpoint' URL, copied from the prerequisites section.
 
A_MGFjZjlkZDY2YjhlM2JmOdOP1hd14HZfe3CJNAQLN_Unlg7auKWxoeCXZ5w45r6x5i_7q47lJQZWGCt8Ljgez4KOL-7d6AsMn3K51FoSLuJeV9PCRBc8z5oQ9bxAWk45.png
 
  • Step 18a > An example 'Remote Connect Manifest Endpoint' URL is shown. Populate the other input field values for the 'Configuration' section, as instructed in the table.
  • Step 19a > Click on the 'Submit' button to add the cluster instance.
 
A_MGFjZjlkZDY2YjhlM2JmOerb-qZwyiaqldgvorMnKj3UwhwDF4RywW0fJJ__5s9DmGDZZzAfIwR04sHIj9hAJhxr36aaLtQARGEMF3WgQuflbQMEIp0qj-JQKu73zCq7.png
Input Field Value
Remote Connect Manifest Endpoint (*) The manifest URL is used to stitch the cluster with the third-party application workload management solution like SUSE Rancher.
Minimum Server Nodes (*)
Select the minimum number of server nodes required. The value '1' is auto-populated.
Maximum Server Nodes (*) Select the maximum number of server nodes required. This is a maximum administrative limit on the number of K3S Server Nodes. The value '1' is auto-populated.
Minimum Agent Nodes (*) Select the minimum number of agent nodes required. The value '1' is auto-populated.
Maximum Agent Nodes (*)
 
Select the maximum number of agent nodes required. The value '1' is auto-populated.
 
  • Step 20a > When you click on the 'Submit' button, a toast message appears as shown below:
Cluster Instance: test_cluster has been added.
 
A_MGFjZjlkZDY2YjhlM2JmOSkayeMwL18gV42c_a0EajdKOn5SFxzeTBQoyQwT_CZ61YXSNUQ3Ar3z_18eyIdSuL9NoMizGXZTYnHw2rwBg9T7LgBVUS139fnYiiHPc6_s.png
 
You can see that the new Cluster Instance is added in the Cluster Instances list view.
 

3.1.2. Automatic Cluster Configuration

  • Step 16b > Click on Automatic.
  • Step 17b > Select the 'Orchestrator Integration' from the dropdown. To know more about the Orchestrator Integration, click here.
 
A_MGFjZjlkZDY2YjhlM2JmOfCFRGQ5Fy5-aErHBi7s04ZicLiKcqwb6yXNpEOm07pTh6pyAfjkZuN94witHOTve6oF8GGWkIBxn0bsaQ02EkUmn9Dmf2fppCi2XQAjdDuw.png
 
  • Step 18b > An example 'Orchestrator Integration' authentication type is shown. Populate the other input field values for the 'Configuration' section, as instructed in the table.
  • Step 19b > Click on the 'Submit' button to add the cluster instance.
 
A_MGFjZjlkZDY2YjhlM2JmOeiQ5zRgWYgEsgHl0w2ZzyHcp96KsQ4hnjsjRUAkgr2W3qlUKEQhPOIkWj6931r1qB50q0LgD--zakrgjIAo9vcn1VgR6LfUum4oxPLNDku8.png
Input Field Value
Orchestrator Integration(*) Third-party integration. SUSE Rancher in this case.
Minimum Server Nodes(*) Select the minimum number of server nodes required. The value '1' is auto-populated.
Maximum Server Nodes(*) Select the maximum number of server nodes required. This is a maximum administrative limit on the number of K3S Server Nodes. The value '1' is auto-populated.
Minimum Agent Nodes(*) Select the minimum number of agent nodes required. The value '1' is auto-populated.
Maximum Agent Nodes(*) Select the maximum number of agent nodes required. The value '1' is auto-populated.
 
  • Step 20b > When you click on the 'Submit' button, a toast message appears as shown below:
Cluster Instance: test_cluster has been added.
 
A_MGFjZjlkZDY2YjhlM2JmObmmQnVhd7slShlvOuDnsT6fDg_yLwMRxsNB_rPvqm5XJVeNSPnpAFIaV3gV6JvRg6i0YLgQwlJpY8b_wZ5s4dtRYaG0w01RhOhTbsc6CjYd.png
 
You can see that the new Cluster Instance is added in the Cluster Instances list view.
 

3.2. Read

The newly added cluster instance shows the status, Admin status, and Run state. When you click on this newly added cluster instance in the list view, you will take a detailed view. The detailed view shows three main sections: 'Status,' 'Basic Info,' and 'Events.'
  • Step 1 > Click on the cluster instance from the list view to get various details of the cluster instance.
 
A_MGFjZjlkZDY2YjhlM2JmOZQHSdVG8Amob4YD5JLtZVwlZSlNU0o06oJvrMrd6T8d4OMhrLOrdGHs6lwdlvwRLNk9hoUnsL6F2AHkZGMZkF1lB2nBM5_nlcBJjO3pU5bI.png
 
  • Step 2 > A temporary tab is created, navigating to the selected cluster instance's detailed view.

Status

This section shows the parameters of 'Information' and 'Deployment.' sub-sections for a selected cluster instance.
 
A_MGFjZjlkZDY2YjhlM2JmOXWo0pzZrUjJBIY-FjGxRdA0L6m5NO7W5uqttQ-A4jEftDKOcHkYzGBPv8nOWALUrIU_DCyxeB6X4KCHGJ05drF5fwevzgQ5AecakxR_qFv9.png
 
The table below describes the various Run States and their descriptions:
Run State
Description
Unknown The status of the cluster instance is yet to be reported by EVE-OS.
Init
ZedControl has started provisioning the cluster instance.
Unhealthy more than half of the cluster members are either not operational or not visible from ZedControl (i.e., EVE-OS is not sending any status messages, probably due to loss of connectivity).
Provisioning Seed Server ZedControl is provisioning the first member in the cluster.
Provisioned Seed Server ZedControl has provisioned the seed server.
Provisioning Nodes ZedControl is in the process of provisioning the remaining nodes in the cluster.
Healthy The cluster is fully operational.
Partially Healthy The majority of the cluster members are online, but not all are.
Offline The cluster is offline.
 

a) Information

This subsection shows an overview of the selected cluster instance such as the 'Admin Status,' 'Run State.'
 

b) Deployment

This subsection shows the cluster instance where the edge application instance is deployed, edge node details, and each edge application instance's role. 'Edge App Instance' has two types of servers–normal server and seed server. The seed server is the first server that comes up. 'Edge Node' shows the details of one or more edge nodes used for the cluster instance deployment. 'Role' specifies if the edge application instance is an agent or a server.
 

Basic Info

This section shows the parameters of 'Identity,' 'Deployments,' and 'Configuration' sub-sections for a selected cluster instance. These parameters comprise both editable and non-editable fields.
 
A_MGFjZjlkZDY2YjhlM2JmOQ5oe7Gaw-p09_V0j4bMgsvKDY_AixI6m05BCRYt74fxNFAh8XWCimLqjj9Yg4W0ypOcGnI6_I_33WexeBaAoujoJxg3ILiK9S0nADsLhxyf.png
 

a) Identity

This subsection shows the identity details of the particular cluster instance.

b) Deployments

This subsection shows details about the project, drives, resources, and network adapters.
 
A_MGFjZjlkZDY2YjhlM2JmOQcH55sCuNHItb_7VZ1x8KJ6W0T_H-NRIbQpOFE6R7eVm7XwMyfkTGmybszwgul7BKW8-M0Oa1cyV0tA3yInIrc1rQic9mIRMhLQf8b2OylM.png
 

c) Configuration

This subsection shows the configuration details, including the server node, agent node, and edge node details.
Click on the 'Cluster Instance Orchestration URL' link to view the Rancher dashboard details.
 
A_MGFjZjlkZDY2YjhlM2JmOaVFi1iNJyC0VsUjCnDjhQnHVTC3wyU5uLrww75U9JXFPQ64NnZ6WVpWc_biHn_cVR2atLLvuY7e7Jz3GXvFdCTGRbAT2pzANH77cQW2I-HI.png
 

Events

 
A_MGFjZjlkZDY2YjhlM2JmObRFuED89tukN4a4alF5npfJGuqtpoZKhoWX6ZYSJkbnOtA1ucC61ffaYDSdQ5_7ZxqN_kBtO3354-l6c7t8sgsUvMnHYLyVFNUA4nI7z-kv.png
 

a) List View

This subsection shows the edge node events with details such as date and time, severity, source, and summary.
 

b) Summary View

This subsection shows more details about a selected event, along with the debug information, if any.
 

3.3. Update

You can only perform the update/edit operation in the cluster instances detail view. After logging in to ZedControl, click on the 'Cluster Instances' menu from the left navigation to list already available cluster instances. Click on any of the cluster instances in the list view to show the detailed view of the same.
The update/edit view shows only in the 'Basic Info' section.
Update/edit a cluster instance using the following steps:
  • Step 1 > Click on the Edit (Edit_icon.png) icon.
 
A_MGFjZjlkZDY2YjhlM2JmOQ1RFOYHmZvraKWPmSqlWOaYFe_vmXJPD3VPgjr0QKm1b0TfCNMBQmyFJQGxHSA5fqC0hjnjceXFW_Gl6idEHZ-DESHM2ZutySR67APKDylp.png
 
  • Step 2 > Update the editable fields of the 'Identity,' 'Deployments,' and 'Configuration' sections. Refer to the tables under the create operation for information on the editable field values and descriptions.
 
A_MGFjZjlkZDY2YjhlM2JmOb-KUmdsuFEoZG7X9WGnm_wTj6FOZztmUrLeoFTH14zaE9tvQwvBaWDQUzDM0r36tzWttyzPxksGEHTZRIJpni63WLZI9omy0MmUg2m7FiEv.png
 
  • Step 3 > Click on 'Submit' button.
 
A_MGFjZjlkZDY2YjhlM2JmOWym-Xr3_2vMUg2NaqdTAR1aZaAg5LaHmoyeVMf2JRkku9rjVeC_WELv2gGRWjp7G6kTTZyScQe_JGu2ODPgzPayxjF6BEOAjGJ2gW3rLlUQ.png
 
  • Step 4 > When you click on the 'Submit' button, a toast message announcing the successful submission of the cluster instance appears below:
Cluster Instance: test-cluster has been updated.
 
A_MGFjZjlkZDY2YjhlM2JmOTUoUwmiHxJxy1pD0AAo6mJ5BrIGGFb-i8cx-jD1zr36hvSh3bNd4yY_sbeafSXmnOwfbbvBvYsxxBZH9Ax6t96n5BjY7_M96sU3HypGgeqw.png
 

3.4. Delete

The following are the steps to delete cluster instances.
  • Step 1 > Click on the temporary cluster instance link to show the selected cluster instance's details.
  • Step 2 > Click on the More (More_icon.png) icon on the top right corner.
  • Step 3 > From the dropdown, select 'Delete'.
 
A_MGFjZjlkZDY2YjhlM2JmOR543tsMVloYRRD4Mb6rb8S2UjwYlSmIfGIZ9zMi0pU8xAlHlPRpwvTzDenEDlFoHCcKiGjq0jyfu8xt5ijwu3zR_7JapYYb8Dj-nNOVLR6R.png
 
  • Step 4 > Click the 'Confirm' button on the modal dialogue, which appears as below:
You are about to Delete 1 Cluster Instance(s). Deleting Cluster Instance(s) will cause loss of the application data on edge node as well as ZedControl.
Deleted Cluster Instance(s) cannot be restored again from ZedControl.
 
A_MGFjZjlkZDY2YjhlM2JmOabicoUq3LqxrZTeWJ6cxuhJjPaCUapf2w-7sgjdzUWu2plhPQARhIXckj4Uztqj5TbOzTXjYuqe7s7r5P_Hp82rqMp4dJhg3QNR3cNG8_v0.png
 
  • Step 5 > When you click on the 'Confirm' button, a toast message appears as shown below:
Delete request to 2 App instances was successfully submitted.
 
 

4. Operations using zCLI

 
Note: zCLI is an easy-to-use interface that allows the interaction of ZEDEDA offering through standard REST-based API.
 
To login to ZedControl through zCLI, see here.
 

4.1. Create

You can create the Cluster Instance using the following command:
zcli>cluster-instance create<name>
--k3s-edge-app=<edge-app-name>
--project=<project-name>--cluster-config=<cluster-config>
--edge-node-pool-tag=<key:value>...
--network-assignment=<interfaceName:assignmentType>
[--network-tag=<key:value>...][--title=<title>]
[--description=<description>]
[--tags=<key:value>...]
 
An example of creating a cluster instance is as follows:
zcli cluster-instance create test_instance --k3s-edge-app=k3s_on_ubuntu_with_logs --project=adarsh-dev --edge-node-pool-tag=adarsh-k3s:dev2 --cluster-config="/root/cluster-inst.conf" --network-assignment=eth0:default --title="test title" --description="test description" --tags=clusterTagKey:clusterTagValue
 
The cluster instance creates a config. The file below is the sample for this file. This file should be a part of the below command:
--cluster-config=<cluster-config>
cluster-conf={
minEdgeDevices=1
maxEdgeDevices=1
minServerNodes=1
maxServerNodes=1
minAgentNodes=1
maxAgentNodes=1
callHomeURL=sampleCallHome.url
}
 

4.2. Show

You can read the Cluster Instance using the following command:
zcli>cluster-instance show[<name>|--uuid=<uuid>]
[--name-pattern=<name-pattern>][--detail][--page-size=<page-size>]
[--project=<project-name>]

 

4.3. Update

You can update the Cluster Instance using the following command:
zcli> cluster-instance update <name> [--title=<title>]
[--description=<description>] [--tags=<key:value>...]
 

4.4. Delete

You can delete the Cluster Instance using the following command:
zcli> cluster-instance delete <name> [-f]
 
Note: -f in Reboot and Delete operations are used to forcefully make the delete request to the ZedControl, without prompting the user.
Was this article helpful?
2 out of 2 found this helpful

Articles in this section