- OpenShift 教程
- OpenShift - 首頁
- OpenShift - 概述
- OpenShift - 型別
- OpenShift - 架構
- OpenShift - 環境設定
- OpenShift - 基本概念
- OpenShift - 入門
- OpenShift - 構建自動化
- OpenShift - CLI
- OpenShift - CLI 操作
- OpenShift - 叢集
- OpenShift - 應用伸縮
- OpenShift - 管理
- OpenShift - Docker 和 Kubernetes
- OpenShift - 安全
- OpenShift 有用資源
- OpenShift - 快速指南
- OpenShift - 有用資源
- OpenShift - 討論
OpenShift - Docker 和 Kubernetes
OpenShift 建立在 Docker 和 Kubernetes 之上。所有容器都構建在 Docker 叢集之上,該叢集本質上是在 Linux 機器上執行的 Kubernetes 服務,使用 Kubernetes 的編排功能。
在這個過程中,我們構建 Kubernetes 主節點,它控制所有節點並將容器部署到所有節點。Kubernetes 的主要功能是使用不同型別的配置檔案來控制 OpenShift 叢集和部署流程。與 Kubernetes 中使用 kubectl 的方式相同,我們使用 OC 命令列實用程式在叢集節點上構建和部署容器。
以下是用於在叢集中建立不同型別的物件的不同型別的配置檔案。
- 映象
- Pod
- 服務
- 複製控制器
- 副本集
- 部署
映象
Kubernetes (Docker) 映象是容器化基礎設施的關鍵構建塊。目前,Kubernetes 僅支援 **Docker** 映象。Pod 中的每個容器在其內部都執行著其 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
Pod 是 Kubernetes 叢集節點內容器及其儲存的集合。可以在 Pod 中建立多個容器。以下是在同一個 Pod 中保留資料庫容器和 Web 介面容器的示例。
apiVersion: v1
kind: Pod
metadata:
name: Tomcat
spec:
containers:
- name: Tomcat
image: tomcat: 8.0
ports:
- containerPort: 7500
imagePullPolicy: Always
服務
服務可以定義為 Pod 的邏輯集合。它可以定義為 Pod 之上的抽象層,提供單個 IP 地址和 DNS 名稱,透過這些地址和名稱可以訪問 Pod。使用服務,可以非常輕鬆地管理負載均衡配置。它有助於 Pod 非常輕鬆地進行擴充套件。
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
ports:
- port: 8080
targetPort: 31999
複製控制器
複製控制器是 Kubernetes 的關鍵特性之一,負責管理 Pod 的生命週期。它負責確保在任何時間點都執行指定數量的 Pod 副本。
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
副本集
副本集確保應執行多少個 Pod 副本。它可以被視為複製控制器的替代品。
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。