Page History
...
The archive includes the following files:
js7-deployment.yaml – This file is the deployment file for JS7 components.
Code Block language yml title Example for js7-deployment.yaml linenumbers true collapse true 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
This YAML file describes a Pod in Kubernetes, which is a group of one or more containers and a config map.
The Pod has three containers:
- The js7joc container runs the joc-2-5-1 image and exposes port 4446. It also uses a ConfigMap named hibernate-config as a volume, mounted at /var/sos-berlin.com/js7/joc/resources/joc/. The container sets several environment variables, including RUN_JS_JAVA_OPTIONS, RUN_JS_USER_ID, and RUN_JS_ID.
- The js7con container runs the controller-2-5-1 image and exposes port 4444. It sets the environment variables RUN_JS_JAVA_OPTIONS, RUN_JS_USER_ID, and RUN_JS_ID.
- The js7agent container runs the agent-2-5-1 image and exposes port 4445. It sets the environment variables RUN_JS_JAVA_OPTIONS, RUN_JS_USER_ID, and RUN_JS_ID.
Each container runs a different image from the sosberlin/js7 repository and is assigned a unique port.
Each container has environment variables defined, which control various runtime parameters for the application such as:
- RUN_JS_JAVA_OPTIONS
- RUN_JS_USER_ID
- RUN_JS_ID
A volumeMounts to the configMap is used named hibernate-config which is mounted to the /var/sos-berlin.com/js7/joc/resources/joc/ directory in the js7joc container.
js7-service.yaml – This file includes the configuration for port forwarding.
Code Block language yml title Example for js7-service.yaml linenumbers true collapse true 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: {}
hibernate.cfg.xml – This file includes the Hibernate configuration for connections to the JS7 - Database. Find the following example for use with a MySQL® database.
Code Block language yml title Example for js7-service.yaml linenumbers true collapse true <?xml version="1.0" encoding="UTF-8" standalone="no"?> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">org.mysql.jdbc.Driver</property> <property name="hibernate.connection.password">jobscheduler</property> <property name="hibernate.connection.url">jdbc:mysql://mysqlsrv:3306/jobscheduler</property> <property name="hibernate.connection.username">jobscheduler</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <property name="hibernate.show_sql">false</property> <property name="hibernate.connection.autocommit">false</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property> <property name="hibernate.connection.provider_class">org.hibernate.hikaricp.internal.HikariCPConnectionProvider</property> <property name="hibernate.hikari.maximumPoolSize">10</property> </session-factory> </hibernate-configuration>
Step-by-Step Instructions
...
- Download the archive file: js7-kubernetes.zip. Open a console window from the directory where you downloaded the .zip archive and extract the archive.
Execute the below command to create a config map and to pass the
hibernate.cfg.xml
file to the mount directory of the container.Code Block kubectl create configmap hibernate-config --from-file=hibernate.cfg.xml
Run the
js7-deployment.yaml
file to create the deployment for the JS7 configuration.Code Block kubectl create -f js7-deployment.yaml
Run the
js7-service.yaml
file to create the service for the JS7 configuration.Code Block kubectl create -f js7-service.yaml
Once both YAML files are executed successfully, users can check the pod's status. The following command displays pods running in the Kubernetes cluster.
Code Block kubectl get pods
Once both YAML files are executed successfully, users can check the steps from the YAML file executed to create the pod. The following command displays resources used in Kubernetes. It shows data from a single resource and from a collection of resources.
Code Block kubectl describe pods
The following command can be executed to check the IP address and port of JS7 components.
Code Block kubectl get service
...