OpenShift - Docker 和 Kubernetes
OpenShift 建立在 Docker 和 Kubernetes 之上。所有容器都建立在 Docker 集群之上,Docker 集群基本上是 Linux 机器上的 Kubernetes 服务,使用 Kubernetes 编排功能。
在此过程中,我们构建了 Kubernetes 主节点,它控制所有节点并将容器部署到所有节点。Kubernetes 的主要功能是使用不同类型的配置文件控制 OpenShift 集群和部署流程。与 Kubernetes 一样,我们使用 kubctl 的方式与使用 OC 命令行实用程序在集群节点上构建和部署容器的方式相同。
以下是用于在集群中创建不同类型对象的不同类型的配置文件。
- Images
- POD
- 服务
- 复制控制器
- 副本集
- 部署
Images
Kubernetes (Docker) Images 是容器化基础设施的关键构建块。截至目前,Kubernetes 仅支持 Docker Images。Pod 中的每个容器都有其 Docker Images 在里面运行。
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。以下是将数据库容器和 Web 界面容器放在同一个 Pod 中的示例。
apiVersion: v1
kind: Pod
metadata:
name: Tomcat
spec:
containers:
- name: Tomcat
image: tomcat: 8.0
ports:
- containerPort: 7500
imagePullPolicy: Always
服务
服务可以定义为一组逻辑上的 pod。它可以定义为 pod 之上的抽象,提供单个 IP 地址和 DNS 名称,通过该 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 教程。

