您的位置:首页 > 运维架构

Openshift通过k8s集群部署web应用

2018-11-08 17:53 633 查看

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

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

 

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

[code]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文件如下:

[code]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文件如下: 

[code]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下

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

[code]cd /home/k8s/project

 

五、启动部署服务

  • 启动pod
[code]kubectl create -f hellodocker-pod.yaml

查看pod状态 

[code]kubectl get pods

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

 查看service状态

[code]kubectl get service

 

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

 

七:访问服务:

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

 

 

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

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: