OpenShift Docker 和 Kubernetes
OpenShift 构建在 Docker 和 Kubernetes 之上。所有容器都建立在 Docker 集群之上,Docker 集群基本上是 Linux 机器之上的 Kubernetes 服务,使用 Kubernetes 编排功能。
在这个过程中,我们构建了 Kubernetes master,它控制所有节点并将容器部署到所有节点。 Kubernetes 的主要功能是使用不同类型的配置文件来控制 OpenShift 集群和部署流程。与在 Kubernetes 中一样,我们使用 kubctl 的方式与使用 OC 命令行实用程序在集群节点上构建和部署容器的方式相同。
以下是用于在集群中创建不同类型对象的不同类型的配置文件。
Images
POD
Service
Replication Controller
Replica set
Deployment
Images
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。以下是将数据库容器和 Web 界面容器保存在同一个 Pod 中的示例。
apiVersion: v1
kind: Pod
metadata:
name: Tomcat
spec:
containers:
-name: Tomcat
image: tomcat: 8.0
ports:
-containerPort: 7500
imagePullPolicy: Always
Service
服务可以定义为一组逻辑上的 pod。它可以定义为 pod 之上的抽象,提供单个 IP 地址和 DNS 名称,可以通过它访问 pod。使用 Service,可以非常轻松地管理负载平衡配置。它可以帮助 POD 轻松扩展。
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
ports:
-port: 8080
targetPort: 31999
Replication Controller
Replication Controller 是 Kube 的关键特性之一rnetes,负责管理 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
Replica set
副本集确保应该运行多少个 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
Deployment
部署已升级和更高版本的复制控制器。他们管理副本集的部署,这也是复制控制器的升级版本。它们具有更新副本集的能力,也能够回滚到以前的版本。
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。