jenkins+kubernetes(k8s)发布Springboot项目

本文详细记录了使用Jenkins结合Kubernetes(k8s)部署Springboot项目的过程,包括k8s集群搭建、harbor私仓准备、Jenkins定制镜像、服务配置和权限设置,以及发布Java服务的完整步骤,旨在帮助初学者避免常见问题。
摘要由CSDN通过智能技术生成

记录一下学习k8s+jenkins发布项目的过程,期间遇到很多坑。希望能让刚接触的童鞋少走弯路。

准备工作

本篇只介绍发布的过程,在这之前有很多必要的工作要做:

  1. k8s集群搭建 ,我自己搭的是3个节点的集群;
  2. harbor搭建 ,docker镜像私仓;

机器列表

host ip 描述
centos7docker 192.168.147.129 harbor私仓机器
k8smaster 192.168.147.130 k8smaster节点
k8sworker1 192.168.147.131 k8s节点
k8sworker2 192.168.147.132 k8s节点

镜像列表

镜像名称 依赖的镜像 描述
jenkins/jenkins:lts jenkins官方镜像
centos7docker:443/aliang-xyl/jenkins:lts jenkins/jenkins:lts 自制jenkins镜像
centos:7 centos7官方镜像
centos7docker:443/aliang-xyl/java8:jdk-8u231 centos:7 自制java服务基础镜像
centos7docker:443/aliang-xyl/provider-docker-demo:e161850 centos7docker:443/aliang-xyl/java8:jdk-8u231 java服务镜像

创建一个java项目

创建一个Java项目,结构如下:
在这里插入图片描述
项目Dockerfile文件内容, 用于项目打包成镜像

# 基于哪个镜像, 这个是我自定义的镜像,可根据实际情况更改
FROM centos7docker:443/aliang-xyl/java8:jdk-8u231

ARG JAR_FILE
ADD target/provider-docker-demo.jar /provider-docker-demo.jar

# 配置容器启动后执行的命令
ENTRYPOINT  ["java","-Ddemo.test=test", "-Xmn256M", "-Xms1G", "-Xmx1G", "-XX:MetaspaceSize=512M","-jar","/provider-docker-demo.jar"]

k8s.ymal文件内容

apiVersion: v1
kind: Service
metadata:
  name: provider-docker-demo
  namespace: default
  labels:
    app: provider-docker-demo
spec:
  type: NodePort
  ports:
  - port: 30001
    nodePort: 30001 #service对外开放端口
  selector:
    app: provider-docker-demo
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
  name: provider-docker-demo #名称
  labels:
    app: provider-docker-demo #标注 
spec:
  replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
  selector:
    matchLabels:
      app: provider-docker-demo
  template:
    metadata:
      labels:
        app: provider-docker-demo
    spec:
      containers: #docker容器的配置
      - name: provider-docker-demo
        image: centos7docker:443/aliang-xyl/provider-docker-demo:<BUILD_TAG> # pull镜像的地址 ip:prot/dir/images:tag
        imagePullPolicy: IfNotPresent #pull镜像时机,
        ports:
        - containerPort: 30001 #容器对外开放端口
        volumeMounts:
        - mountPath: logs/privider-demo
          name: provider-docker-demo-logs
      volumes:
      - name: provider-docker-demo-logs
        hostPath: 
          path: /home/logs/privider-docker-demo

自定义基础docker镜像Dockerfile,定制一个Java服务运行的基础镜像

# centos:7是官方镜像
FROM centos:7
# jdk信息
ADD jdk-8u231-linux-x64.tar.gz /usr/local
ENV JAVA_HOME  /usr/local/jdk1.8.0_231
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
# 更改系统语言,不更改的话java服务中中文会出现乱码
RUN yum -y install kde-l10n-Chinese telnet && \
yum -y install glibc-common &&\
yum clean all  && \
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL=zh_CN.utf8
ENV LANG=zh_CN.utf8
ENV LANGUAGE=zh_CN.utf8
# 更改时区
RUN echo 'Asia/Shanghai' >/etc/timezone

创建基础镜像

  • 11
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值