You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction


Setting up a Kubernetes Cluster

There are several ways how to set up a Kubernetes Cluster. Find an example from the following chapters.

The basic step which can be followed to install the Kubernetes cluster on Centos are:

  1. Install Docker on all CentOS 7 VMs

    1. Update the package database

      sudo yum check-update
    2. Install the dependencies

      sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    3. Add and enable the official Docker Repository to CentOS 7

      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    4. Install the latest Docker version on CentOS 7

      sudo yum install docker-ce



    5. A successful installation output will be concluded with a Complete!
      You may be prompted to accept the GPG key. This is to verify that the fingerprint matches. The format will look as follows. If correct, accept it.

      060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
    6. Manage Docker service
      Now Docker is installed, but the service is not yet running. Start and enable Docker using the commands. 

      sudo systemctl start docker
      sudo systemctl enable docker
    7. To confirm that Docker is active and running use:

      sudo systemctl status docker
  2. Set up the Kubernetes Repository

    1. Since the Kubernetes packages aren’t present in the official CentOS 7 repositories, we will need to add a new repository file. Use the following command to create the file and open it for editing:

      sudo vi /etc/yum.repos.d/kubernetes.repo
    2. Once the file is open, press I key to enter insert mode, and paste the following contents:

      [kubernetes]
      name=Kubernetes
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

      Once pasted, press escape to exit insert mode. Then enter :x to save the file and exit.


  3. Install Kubelet on CentOS 7

    1. The first core module that we need to install on every node is Kubelet. Use the following command to do so:

      sudo yum install -y kubelet
  4. Install kubeadm and kubectl on CentOS 7

    1. kubeadm, the next core module, which has to be installed. Use the following command:

      sudo yum install -y kubeadm

      (Note that kubeadm automatically installs kubectl as a dependency)





 
 
 

You can follow the below steps:

  1. Unzip the attached folder. The folder structure includes 3 files:
    1. js7-deployment.yaml – This file is the deployment file for the JS7
    2. js7-servcie.yaml – This includes the configuration of port forwarding
    3. hibernate.cfg.xml – This is the hibernate file for connection to the database.
  2. Edit the hibernate.cfg.xml file and adjust it according to your database credentials.
  3. Open CMD from the folder where you unzip attached ZIP.
  4. Run the command “kubectl create configmap hibernate-config --from-file=hibernate.cfg.xml” to create a config map and to pass this hibernate.cfg.xml file to the mount directory of the container.
  5. Run the command to create the YAML: “kubectl create -f js7-deployment.yaml” to create the deployment of JS7.
  6. Run the command to create the YAML: “kubectl create -f js7-service.yaml
  7. kubectl describe pods - to check if there is any error or not.
  8. kubectl get pods - to check the status of pods
  9. kubectl get service - to check the IP and port of the kubernetes clusters

Deployment Files


Deployment File

=> insert the example file

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: js7joc
  name: js7joc
spec:
  volumes:
  - name: hibernate-config
    configMap:
        name: hibernate-config
  containers:
  - image: sosberlin/js7:joc-2-5-1
    name: js7joc
    ports:
    - containerPort: 4446
    volumeMounts:
    - name: hibernate-config
      mountPath: /var/sos-berlin.com/js7/joc/resources/joc/
  
    env:
    - name: RUN_JS_JAVA_OPTIONS
      value: "-Xmx256m"
    - name: RUN_JS_USER_ID
      value:  "0:0"
    - name: RUN_JS_ID
      value:  "jobscheduler"
      
  - image: sosberlin/js7:controller-2-5-1
    name: js7con
    ports:
    - containerPort: 4444
    env:
    - name: RUN_JS_JAVA_OPTIONS
      value: "-Xmx256m"
    - name: RUN_JS_USER_ID
      value:  "0:0"
    - name: RUN_JS_ID
      value:  "jobscheduler"
      
  - image: sosberlin/js7:agent-2-5-1
    name: js7agent
    ports:
    - containerPort: 4445

=> add explanations for specific settings

Service File

=> insert the example file

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    run: js7joc
  name: js7joc
spec:
  ports:

  - name: js7joc
    port: 4446
    protocol: TCP
    targetPort: 4446

  - name: js7agent
    port: 4445
    protocol: TCP
    targetPort: 4445

  - name: js7controller
    port: 4444
    protocol: TCP
    targetPort: 4444
  
  selector:
    run: js7joc
  type: LoadBalancer
status:
  loadBalancer: {}

=> add explanations for specific settings


  • No labels