OpenShift建立在Docker和Kubernetes之上.所有容器都建立在Docker集群之上,基本上是Linux机器上的Kubernetes服务,使用Kubernetes编排功能.
在这个过程中,我们构建了Kubernetes master来控制所有节点并将容器部署到所有节点. Kubernetes的主要功能是使用不同类型的配置文件来控制OpenShift集群和部署流程.与Kubernetes一样,我们使用kubctl与使用OC命令行实用程序在集群节点上构建和部署容器的方式相同.
以下是用于创建不同类型的不同类型的配置文件集群中的对象种类.
图片
POD
服务
复制控制器
副本集
部署
Kubernetes(Docker)图像是Containerized Infrastructure的关键构建块.截至目前,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界面容器保存在同一个窗格中的示例.
apiVersion: v1 kind: Pod metadata: name: Tomcat spec: containers: - name: Tomcat image: tomcat: 8.0 ports: - containerPort: 7500 imagePullPolicy: Always
可以将服务定义为逻辑一组豆荚.它可以定义为pod顶部的抽象,提供单个IP地址和DNS名称,通过它可以访问pod.使用Service,可以非常轻松地管理负载平衡配置.它可以帮助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 .