How 'GSS on Kubernetes'?- Preparing Cluster
Suresh Chintalapudi
Technology Entrepreneur | Solution Architect | Smart Grid | AI & IoT
In the last article I touch based on why GSS on Kubernetes? and here I will try to explain how we do it,?starting with how do we setup or prepare the Kubernetes first.
?Kubernetes is available on multiple platforms like AWS, Azure etc?and of course it can be configured on the local data center as well. As part of this series we will be focusing on deploying in the local data center using RPM based Linux operating systems like RHEL, CentOS, Oracle etc. I am particularly focusing on RPM based Linux because GE delivers the Kubernetes scripts for RPM based OS as part of product.
?Before we use the Kubernetes cluster we have to understand the various structures of clusters first. There are typically three formats of clusters -
?Single node cluster is a set up where there is only one node or server available for the cluster. The same node works as master as well as worker. This setup is called untainted master setup. Typically the masters are tainted with parameters to Stop scheduling pods on it. However untainted master setup can change the configuration to run?pods on the same master node and use it as worker node also. This setup is very vulnerable as everything is on one node/server.
?Single master and multiple/single worker setup has one node acting as master and there will be single/multiple workers that will be running pods on it. The drawback of this setup is that the master is the single point of failure though there are multiple workers available to share the load, failing of master takes down the entire cluster.
?Multiple master and multiple worker setup is where there are highly available masters to handle the failures and multiple nodes to schedule/manage the pods. This setup needs more number of nodes and high resources to manage the cluster. Typically this is the production setup.
?Though GSS can be deployed into any of the clusters mentioned above, we have to ensure that the servers have capacity to run all the containers/pods needed.
领英推荐
?After deciding on which type of cluster to use we have to install Docker and Kubernetes on all the nodes that will be used in the cluster. When all the nodes are ready we typically choose one node to be the master to start the process of creating the cluster. It is preferred to have internet on these nodes when we are installing the cluster for the first time so that K8S can download and install the components needed.
?Kubernetes installation comes with the tool called KUBECTL which will help in configuring cluster and deploying the solutions into it. Using this tool we can initialize/start the cluster and add notes to extend it.
?'kubectl init ......' is the command that will initialize the cluster by downloading the required Docker images and starts the container/pods that will build the cluster. Cluster initialization is explained in multiple articles and blogs over the internet and I recommend you to follow anyone of them for more details based on your understanding and experience.
?Though we initialize the cluster, the important ability of connecting?resources (networking) in the cluster is not available to it by default. An additional plugin called CNI plugin is needed to enable the cluster with proper connectivity between resources. Flannel and Calico are a couple of such widely used plugins and as these are free we can install by following the steps given in any of the blogs you refer.
?This process of initialization and CNI plugin configuration is common to all types of clusters irrespective of their formats above. With these steps the cluster is created and well connected to be used for the deployment of any solution into it.
?Now that you understood what are different types of clusters and the ways to create them we will explore the possibilities of deploying GSS onto it in the coming articles.