note1:openshift container platform 项目部署/发布

在ocp(red hat openshift container platform )上部署已上传至git的项目

本人菜鸟,纯纯记录自己的学习。我用的英文版(右上角用户-语言选项),因为中文版的翻译比较奇葩。

目录

1.登陆

2.maven打包成war包

3.创建Git映射用户 source secret

4.打WAR包Builds Configs--create build config

5.配置Sevices、Deployment、Route

1.登陆

ocp网页端登陆:登陆选择htpasswd。

2.maven打包成war包

这一步的目的是保证本地能成功构建war包,视情况可以省略

①在pom.xml文件中添加jdk版本指定:

②本地打包:

方法1:maven project的lifecycle里先选clean后选package maven-clean-package

方法2:右键项目run as-maven build。将会在target文件夹生成项目war包。

3.创建Git映射用户 source secret

Workloads-->Secrets-->create source secret

Secret name:ocp中git别名

Username:git用户名

Password or Token:git密码

基础仓库:push secret(无需用户名密码)

git仓库:source secret(要有对应clone路径的权限)

4.打WAR包Builds Configs--create build config

builds-->build configs-->create build config

创建maven打包的配置

apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
  name: jzzy-manage   文件名称
  namespace: jzzy-center  命名空间,同一项目的所有服务命名空间可以一样
spec:
  source:
    git:
      ref: master  代码分支
      uri: 'https://github.com/openshift/ruby-ex.git'  拉取代码的git地址
    type: Git
    sourceSecret:
      name: cz    git账户映射别名
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: ImageStreamTag
        name: 'registry-dev.……:8500/it/s2i/liberty:19.0.0.5-jdk8'  镜像仓库中的基础镜像
        namespace: openshift
      env:  环境  
        - name: APP_DIR  
          value: jartmp/app
        - name: APP_ENV
          value: test
        - name: ANT_ARGS    
          value: '-propertyfile build-test.properties war'
        - name: MAVEN_ARGS   maven命令
          value: '-pl jzzy-manage -am -DskipTests --settings settings.xml' 该命令具体分packages
  output:
    to:
      kind: DockerImage
      name: 'registry-dev.……:8500/it/jzzy-center/jzzy-manage:r2022110801' 输出的镜像名称
    pushSecret:
      name: registry-dev
  triggers:  触发器
    - type: ImageChange
      imageChange: {}
    - type: ConfigChange

配置完maven的配置后,在logs会有日志输出,如输出 "build success" 表示构建成功。

易错点:

spec下加resources(原因我不懂,但是很多次报错都是因为没加这个,有时候不加也没事)

resources:
    limits:
        cpu: '1'
        memory: 2Gi

5.配置Sevices、Deployment、Routes

①配置services

Networking-->Services-->create services
对应行的解释
4、 配置文件名称,格式:项目名+“-”+service
5、 命名空间,跟前面命名空间保持一致
33、service端口,对集群外提供服务
34、目标端口,对应上面pod容器的端口
36、选择器名称,对应上面deployments选择器名称保持一致

apiVersion: v1
kind: Service
metadata:
  name: jzzy-manage                 服务名称
  namespace: jzzy-center            命名空间
spec:
  selector:
    app: jzzy-manage                选择器
  ports:
    - protocol: TCP
      port: 9080                  服务端口,即项目镜像开放的端口
      targetPort: 9080            映射端口,外部访问端口

这里的port和targetport对应的是project运行的端口。

②配置deployment

Workloads-->Deployments-->Create Deployment

创建配置文件:

对应行数解释:

5、命名空间,和前面构建war包、构建镜像的命名空间保持一致

9、选择器名称,指定挑选那些label的pod作为下面service的后端服务

10、相同服务的负载实例节点个数

14、labels名称,指生成的pod名字前缀

18、部署的镜像名称和版本,对应上一步构建的镜像名称和版本

20、容器的端口,对应springboot项目启动的端口或者是Javaweb项目的Tomcat端口

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jzzy-manage                           deployment名称
  namespace: jzzy-center                   命名空间,与Service保持一致
spec:
  selector:
    matchLabels:
      app: jzzy-manage                  选择器,与service保持一致
  replicas: 1                              节点数量,根据需求调整
  template:
    metadata:
      labels:
        app: jzzy-manage                标签,可与选择器保持一致。              
    spec:
      containers:
        - name: manage              容器名称
          image: registry-dev.sz.bocsys.cn:8500/it/jzzy-center/jzzy-manage:r2022110801    镜像名称(最后是版本号)
          ports:
            - containerPort: 9080            镜像暴露的端口

同buildconfig,spec-container下加resource。

③配置Routes

Networking-->Routes-->Create Route

Name:Route别名 项目名-route
Hostname:服务的域名,如:wechatzuul.appsdev3.sz.bocsys.cn。
Path:对应服务的上下文,默认为”/”。
Service:选择对应的服务,此处显示的服务名 networking services的名称
Target Port:选择域名绑定的端口 service到pod的端口映射

eg:
name:jzzy-manage-rkv2w
hostname:jzzycm-manage-test.appsdev3.sz.bocsys.cn
path:/
service:
targetport:http

④查看Pod

Workloads-->Pods

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenShift Container Platform 是由 Red Hat 公司开发的容器应用平台。它基于 Kubernetes 架构,提供了一套完整的容器管理和应用部署解决方案。 OpenShift Container Platform 主要特点如下: 1. 简化的应用部署和管理:OpenShift 提供了一套易用的图形用户界面和命令行工具,帮助开发者快速部署、管理和扩展容器应用。开发者只需通过一些简单的命令,即可在集群中创建、启动和停止容器。 2. 多语言支持:OpenShift 支持多种编程语言,包括 Java、Python、Go 等。无论是传统的基于 JVM 的应用,还是现代的云原生应用,OpenShift 都能够提供相应的构建和部署工具。 3. 可移植性:OpenShift Container Platform 支持在各种云环境中部署,包括公有云、私有云和混合云。这意味着开发者可以将应用和依赖的环境无缝移植到不同的云服务商或私有数据中心中。 4. 强大的扩展性:OpenShift 支持水平和垂直扩展,能够根据负载情况自动调整应用实例的数量和资源配额。开发者可以根据自己的需求,灵活地调整应用的规模和性能。 5. 安全性:OpenShift Container Platform 提供了丰富的安全功能,包括网络隔离、身份认证、访问控制等。它还支持横向扩展的服务网格,可以保护容器之间的通信安全。 总之,OpenShift Container Platform 是一个功能强大的容器应用平台,能够帮助开发者快速构建、部署和管理容器化的应用,同时保证了应用的可移植性和安全性。无论是开发人员、运维人员还是企业用户,都可以从中受益并提升效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值