OpenShift – Docker 和 Kubernetes

OpenShift – Docker 和 Kubernetes


OpenShift 构建在 Docker 和 Kubernetes 之上。所有的容器都建立在 Docker 集群之上,Docker 集群基本上是 Linux 机器之上的 Kubernetes 服务,使用 Kubernetes 编排功能。

在这个过程中,我们构建了 Kubernetes master,它控制所有节点并将容器部署到所有节点。Kubernetes 的主要功能是使用不同类型的配置文件来控制 OpenShift 集群和部署流程。与在 Kubernetes 中一样,我们使用 kubctl 的方式与使用 OC 命令行实用程序在集群节点上构建和部署容器的方式相同。

以下是用于在集群中创建不同类型对象的不同类型的配置文件。

  • 图片
  • 服务
  • 复制控制器
  • 副本集
  • 部署

图片

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 是容器及其存储在 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 名称,可以通过它访问 pod。使用 Service,可以非常轻松地管理负载平衡配置。它可以帮助 POD 非常轻松地扩展。

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   ports:
   - port: 8080
      targetPort: 31999

复制控制器

Replication Controller 是 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 教程

觉得文章有用?

点个广告表达一下你的爱意吧 !😁