OpenShift - Docker dan Kubernetes
OpenShift dibangun di atas Docker dan Kubernetes. Semua container dibangun di atas cluster Docker, yang pada dasarnya adalah layanan Kubernetes di atas mesin Linux, menggunakan fitur orkestrasi Kubernetes.
Dalam proses ini, kami membangun master Kubernetes yang mengontrol semua node dan menerapkan container ke semua node. Fungsi utama Kubernetes adalah untuk mengontrol cluster OpenShift dan aliran penerapan menggunakan jenis file konfigurasi yang berbeda. Seperti di Kubernetes, kami menggunakan kubctl dengan cara yang sama kami menggunakan utilitas baris perintah OC untuk membangun dan menerapkan container pada node cluster.
Berikut adalah berbagai jenis file konfigurasi yang digunakan untuk pembuatan berbagai jenis objek di cluster.
- Images
- POD
- Service
- Pengontrol Replikasi
- Kumpulan replika
- Deployment
Gambar-gambar
Image Kubernetes (Docker) adalah blok bangunan utama dari Infrastruktur yang tertampung. Untuk saat ini, Kubernetes hanya mendukungDockergambar-gambar. Setiap container dalam pod memiliki image Docker yang berjalan di dalamnya.
apiVersion: v1
kind: pod
metadata:
name: Tesing_for_Image_pull -----------> 1
spec:
containers:
- name: neo4j-server ------------------------> 2
image: <Name of the Docker image>----------> 3
imagePullPolicy: Always ------------->4
command: [“echo”, “SUCCESS”] -------------------> 5
POLONG
Pod adalah kumpulan container dan penyimpanannya di dalam node cluster Kubernetes. Dimungkinkan untuk membuat sebuah pod dengan banyak kontainer di dalamnya. Berikut adalah contoh menyimpan wadah database dan wadah antarmuka web di pod yang sama.
apiVersion: v1
kind: Pod
metadata:
name: Tomcat
spec:
containers:
- name: Tomcat
image: tomcat: 8.0
ports:
- containerPort: 7500
imagePullPolicy: Always
Layanan
Sebuah layanan dapat didefinisikan sebagai kumpulan pod yang logis. Ia dapat didefinisikan sebagai abstraksi di atas pod yang menyediakan satu alamat IP dan nama DNS yang dapat digunakan untuk mengakses pod. Dengan Layanan, sangat mudah untuk mengelola konfigurasi teknik penyeimbang beban. Ini membantu POD untuk menskalakan dengan sangat mudah.
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
ports:
- port: 8080
targetPort: 31999
Pengontrol Replikasi
Pengontrol Replikasi adalah salah satu fitur utama Kubernetes, yang bertanggung jawab untuk mengelola siklus hidup pod. Ia bertanggung jawab untuk memastikan bahwa jumlah replika pod yang ditentukan berjalan kapan saja.
apiVersion: v1
kind: ReplicationController
metadata:
name: Tomcat-ReplicationController
spec:
replicas: 3
template:
metadata:
name: Tomcat-ReplicationController
labels:
app: App
component: neo4j
spec:
containers:
- name: Tomcat
image: tomcat: 8.0
ports:
- containerPort: 7474
Kumpulan Replika
Set replika memastikan berapa banyak replika pod yang harus dijalankan. Ini dapat dianggap sebagai pengganti pengontrol replikasi.
apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
name: Tomcat-ReplicaSet
spec:
replicas: 3
selector:
matchLables:
tier: Backend
matchExpression:
- { key: tier, operation: In, values: [Backend]}
app: App
component: neo4j
spec:
containers:
- name: Tomcat-
image: tomcat: 8.0
ports:
containerPort: 7474
Penyebaran
Deployment ditingkatkan dan versi yang lebih tinggi dari pengontrol replikasi. Mereka mengelola penyebaran kumpulan replika, yang juga merupakan versi pengontrol replikasi yang ditingkatkan. Mereka memiliki kemampuan untuk memperbarui kumpulan replika dan mereka juga mampu mengembalikan ke versi sebelumnya.
apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
name: Tomcat-ReplicaSet
spec:
replicas: 3
template:
metadata:
lables:
app: Tomcat-ReplicaSet
tier: Backend
spec:
containers:
name: Tomcat-
image: tomcat: 8.0
ports:
- containerPort: 7474
Semua file konfigurasi dapat digunakan untuk membuat objek Kubernetes masing-masing.
$ Kubectl create –f <file name>.yaml
Perintah berikut dapat digunakan untuk mengetahui detail dan deskripsi dari objek Kubernetes.
For POD
$ Kubectl get pod <pod name>
$ kubectl delete pod <pod name>
$ kubectl describe pod <pod name>
For Replication Controller
$ Kubectl get rc <rc name>
$ kubectl delete rc <rc name>
$ kubectl describe rc <rc name>
For Service
$ Kubectl get svc <svc name>
$ kubectl delete svc <svc name>
$ kubectl describe svc <svc name>
Untuk detail lebih lanjut tentang cara bekerja dengan Docker dan Kubernetes, silakan kunjungi tutorial Kubernetes kami menggunakan tautan kubernetes berikut .