Openshift-docker-and-kubernetes
OpenShift-DockerおよびKubernetes
OpenShiftはDockerおよびKubernetesの上に構築されています。 すべてのコンテナはDockerクラスター上に構築されます。これは、基本的にLinuxマシン上のKubernetesサービスであり、Kubernetesオーケストレーション機能を使用します。
このプロセスでは、すべてのノードを制御し、コンテナーをすべてのノードに展開するKubernetesマスターを構築します。 Kubernetesの主な機能は、異なる種類の構成ファイルを使用してOpenShiftクラスターと展開フローを制御することです。 Kubernetesの場合と同様に、OCコマンドラインユーティリティを使用してクラスターノードでコンテナーを構築および展開するのと同じ方法でkubctlを使用します。
以下は、クラスター内のさまざまな種類のオブジェクトの作成に使用されるさまざまな種類の構成ファイルです。
- 画像
- POD
- サービス
- 複製コントローラー
- レプリカセット
- 展開
画像
Kubernetes(Docker)イメージは、コンテナ化されたインフラストラクチャの主要な構成要素です。 現在のところ、Kubernetesは Docker イメージのみをサポートしています。 ポッドの各コンテナーには、その内部で実行されるDockerイメージがあります。
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
POD
ポッドは、Kubernetesクラスターのノード内のコンテナーとそのストレージのコレクションです。 内部に複数のコンテナを持つポッドを作成することが可能です。 以下は、データベースコンテナーとWebインターフェイスコンテナーを同じポッドに保持する例です。
apiVersion: v1
kind: Pod
metadata:
name: Tomcat
spec:
containers:
- name: Tomcat
image: tomcat: 8.0
ports:
- containerPort: 7500
imagePullPolicy: Always
サービス
サービスは、ポッドの論理セットとして定義できます。 これは、ポッドにアクセスできる単一のIPアドレスとDNS名を提供するポッドの上部の抽象化として定義できます。 サービスを使用すると、負荷分散の構成を非常に簡単に管理できます。 PODのスケーリングが非常に簡単になります。
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
ports:
- port: 8080
targetPort: 31999
複製コントローラー
レプリケーションコントローラーは、Kubernetesの重要な機能の1つであり、ポッドのライフサイクルを管理します。 指定された数のポッドレプリカが任意の時点で実行されていることを確認する必要があります。
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
レプリカセット
レプリカセットにより、ポッドのレプリカをいくつ実行する必要があります。 レプリケーションコントローラーの代替と見なすことができます。
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
展開
展開はアップグレードされ、レプリケーションコントローラーの上位バージョンになります。 レプリカセットの展開を管理します。これは、レプリケーションコントローラーのアップグレードバージョンでもあります。 レプリカセットを更新する機能があり、以前のバージョンにロールバックすることもできます。
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
すべての構成ファイルを使用して、それぞれのKubernetesオブジェクトを作成できます。
$ Kubectl create –f <file name>.yaml
次のコマンドを使用して、Kubernetesオブジェクトの詳細と説明を知ることができます。
*POD* の場合
$ Kubectl get pod <pod name>
$ kubectl delete pod <pod name>
$ kubectl describe pod <pod name>
レプリケーションコントローラ
$ Kubectl get rc <rc name>
$ kubectl delete rc <rc name>
$ kubectl describe rc <rc name>
サービス
$ Kubectl get svc <svc name>
$ kubectl delete svc <svc name>
$ kubectl describe svc <svc name>
DockerとKubernetesの操作方法の詳細については、次のリンクを使用して、Kubernetesチュートリアルにアクセスしてください:/kubernetes/index [kubernetes]。