开篇说明:本篇是openshift3.9集群环境具体的搭建过程可以参考我的博文:最新OpenShift 3.9 集群(Ansible)安装

本篇是基于已有镜像进行部署的,如果如何通过docker push镜像到镜像仓库可以参考我的博文:OpenShift推送本地镜像到镜像仓库

 

一、新建pod文件:hellodocker-pod.yaml

apiVersion: v1
kind: Pod
metadata:
 name: hellodocker-pod
 labels:
  name: hellodocker-pod
spec:
 containers:
 - name: hellodocker
   image: docker-registry.default.svc:5000/hellodocker/hellodocker
   ports:
   - containerPort: 8080

说明:hellodocker-pod:pod即容器实例的名称;labels:容器实例对应的标签;image:启动容器的镜像;containerPort:容器虚拟出的端口 

​​​​​二、新建ReplicationController:hellodocker-rc.yaml文件如下:

apiVersion: v1
kind: ReplicationController ##表明这个是kubernetes的RC资源,这个是比较低级和基础的资源
metadata: 
  name: hellodocker-rc  ##这个是RC资源的名字,全局唯一,可以通过kubectl get rc查看
spec: 
  replicas: 1  ##副本的数量
  selector: 
    name: hellodocker-pod  ##RC资源,选择label的标签
  template: 
    metadata: 
      labels:
        name: hellodocker-pod ##定义pod的资源label,很重要的一个属性,是被其他service、rc等资源选择标志
    spec:
      containers: ## 容器的属性
        -  name: hellodocker-pod 
           image: docker-registry.default.svc:5000/hellodocker/hellodocker  ##docker的images
           ports: 
             -  containerPort: 8080

说明:selector:RC关联的pod实例

三、新建Service:hellodocker-service.yaml文件如下: 

apiVersion: v1
kind: Service
metadata:
 name: hellodocker-service
spec:
 type: NodePort
 ports:
 - port: 8080
   nodePort: 30001
 selector:
  name: hellodocker-pod

说明:nodePort:对外映射的端口,通过此端口访问,必须大于30000;selector:service关联的pod实例

四、将上述三个文件导入到 /home/k8s/project下

具体目录根据自己的实际情况创建

cd /home/k8s/project

 

五、启动部署服务

  • 启动pod
kubectl create -f hellodocker-pod.yaml

查看pod状态 

kubectl get pods

  • 启动rc
kubectl create -f hellodocker-rc.yaml
  • 启动service 
kubectl create -f hellodocker-service.yaml

 查看service状态

kubectl get service

 

六、登陆openshift集群web端查看当前服务

 

七:访问服务:

192.168.10.179:30001这是我的本地master的IP+nodePort

 

 

至此:Openshift通过k8s集群部署web应用已经完成!

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐