k8s部署springboot项目(代码片段)

cuiran cuiran     2022-10-24     738

关键词:

开篇

基于前面的文章 CentOS7 使用 kubeadm 部署 K8s(单机/集群) 介绍了k8s的部署,接下来需要验证,本文选择通过一个简单的springboot 项目来验证。

springboot项目构建

springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库

镜像构建

首先新建文件dockerfile

FROM openjdk:8-jdk-alpine
MAINTAINER cayden <cuiran2001@163.com>

#定义时区参数
ENV TZ=Asia/Shanghai
# 设置时区
RUN rm -rf /etc/localtime
RUN apk --no-cache add tzdata && \\
    ln -sv /usr/share/zoneinfo/$TZ /etc/localtime &&\\
    echo '$TZ' >/etc/timezone
RUN echo "export LANG=C.UTF-8" > /etc/profile.d/locale.sh

VOLUME /data/app
EXPOSE 8080
# 定义参数
ARG JAR_FILE=target/*.jar
ENV JAVA_OPTS=""

# 复制jar
COPY $JAR_FILE app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

#docker run -e "SPRING_PROFILES_ACTIVE=prod" -p 8080:8080 -t springio/gs-spring-boot-docker

进行build 操作

docker build -t cuiran2001/helloworld .

镜像推送

镜像推送至docker hub

docker push cuiran2001/helloworld:v1.1

推送显示如下 ,表示推送成功!

The push refers to repository [docker.io/cuiran2001/helloworld]
41140fae9ea6: Layer already exists
20efe8a47454: Layer already exists
4a749ec3afe9: Layer already exists
e64205be4795: Layer already exists
ceaf9e1ebef5: Layer already exists
9b9b7f3d56a0: Layer already exists
f1b5933fe4b5: Layer already exists
v1.1: digest: sha256:5c8fed1f1d2af902204aab0b04060db227a1c539f9750c22bbcae025777c3cfb size: 1782

可以到docker hub 上进行查看

k8s部署

模版文件准备

准备一个模板文件 testspringboot-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: testspringboot  #必选,资源名称
spec:
  # 节点数,设置为多个可以实现负载均衡效果
  replicas: 1
  selector:
    app: testspringboot
  template:
    metadata:
      labels:
        app: testspringboot
    spec:
      containers:
      - name: helloworld
        #镜像名
        image: cuiran2001/helloworld:v1.1
        #本地有镜像就不会去仓库拉取
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080

配置说明:
kind:资源类型,详情见文末
metadata: 元数据,用于备注资源信息
spec: specification of the resource content 指定该资源的内容
selector: 选择器,将选择具有label标签的资源作为管理范围
template: 资源模版定义
containerPort: 容器暴露给 K8S 的端口

执行命令

kubectl create -f testspringboot-rc.yaml

暴露对外端口

1、创建 SVC 模板文件 testspringboot-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: testsvc
spec:
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      # 节点暴露给外部的端口(范围必须为30000-32767)
      nodePort: 30001
  selector:
    app: testspringboot

2、创建 Service

kubectl create -f testspringboot-svc.yaml

3、验证测试

访问http://xxxxx:30001 即可

k8s部署springboot项目(代码片段)

...署,接下来需要验证,本文选择通过一个简单的springboot项目来验证。springboot项目构建springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库镜像构建首先新建文件dockerfileFROMopenjdk:8-jdk-alpineMAINTAINERcayd... 查看详情

k8s部署springboot项目(一篇够用)(代码片段)

...天这篇文章主要介绍如何从0开始搭建一套基于K8s部署的SpringBoot案例教程。基础环境准备 查看详情

云原生kubernetesk8s集群部署springboot项目(代码片段)

...比较接近实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是:部署SpringBoot项目到阿里云服务器 ;基于容器打包,推送私有镜像仓库;采用K8S集群部署,对外暴露服务,pod副... 查看详情

k8s的项目部署(代码片段)

k8s的项目部署k8s的项目部署开发阶段持续集成应用部署运维k8s中部署Java项目的流程k8s中部署Java项目制作镜像推送镜像部署镜像暴露应用k8s的项目部署开发阶段●编写代码。●测试。●编写Dockerfile。持续集成●代码编译、打包。... 查看详情

简单几步把springboot项目部署到k8s,步骤来了!(代码片段)

....io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于Kubernetes的customresourcedefinitions(CRDs)扩展API进行的开发... 查看详情

k8s部署springboot项目

...署,接下来需要验证,本文选择通过一个简单的springboot项目来验证。springboot项目构建springboot项目这里不过多介绍,主要介绍如何构建镜像及推送到镜像仓库镜像构建首先新建文件dockerfileFROMopenjdk 查看详情

k8s部署springboot项目

...印并且返回可以看到2个副本pod已经Running访问前需要先把springboot.demo.com域名添加到宿主机的/etc/hosts中保证可以正常解析到ingress-nginx那台机器上的nginx即可(不详可以看上一篇)请求接口:http://springboot.demo.com/k8s/hello?name=johnny查... 查看详情

在k8s中部署springboot应用,爽!(代码片段)

....io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于 查看详情

使用springbootoperator部署springboot到k8s(代码片段)

...u.io/2020/04/08/Spring-Boot-Operator-User-Guide前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于Kubernete 查看详情

打包部署springboot项目到linux并后台运行(代码片段)

...cker和k8s类似的那一套自动化运维方式。一般地,对于springboot项目,我们会把开发测试好的项目打成可执行的jar包,使用scp等方 查看详情

k8s如何部署springboot项目

参考技术AK8S如何部署SpringBoot项目1:首先,需要安装docker环境,以及安装Harbor仓库2:安装K8S集群环境3:进行docker镜像的制作并上传到仓库4:进行容器的编排。启动至此就可以了。创建dockertest.yaml文件如下运行kubectlcreate-fdockertest.... 查看详情

springboot部署k8s(代码片段)

...成功总结前言本系列教程将分2篇文章讲解,怎么部署springboot到k8s上。第一篇:springboot准备,这里包括打包镜像。第二篇:springboot镜像部署到k8s,我们将使用deployment,service用最简单的方式deployk8s.一、IDEA工程目录二... 查看详情

在k8s中部署springboot应用,爽..(代码片段)

....io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署springboot应用整体上来说是一件比较繁琐的事情,而SpringBootOperator则能带给你更清爽简单的体验。SpringBootOperator基于Kubernetes的customresourcedefinitions(CRDs)扩展API进行的开发... 查看详情

k8s部署skywalking并将pod应用接入链路追踪(代码片段)

一、概述前面写了两篇文章介绍使用docker部署springboot和tomcat项目,并将其接入skywalking,这篇文章主要介绍使用k8s部署skywalking并将pod应用接入链路追踪。二、使用helm部署skywalking在k8s中使用helm的前提是需要先安装helm客户端,关... 查看详情

半小时体验云原生:手把手教你在k8s上部署springboot应用——干货分享,建议收藏(代码片段)

你会不会对“云原生”很有兴趣,却不知道从何入手?本文会在window环境下,构建一套基于k8s的istio环境,并且通过skaffold完成镜像的构建和项目部署到集群环境。其实对于实验环境有限的朋友们,完全可以在... 查看详情

kubernetes第六篇:k8s的四种部署策略(代码片段)

...录一、前言二、滚动更新2.1滚动更新2.2实践2.2.1新建两个springboot项目,生成两个镜像2.2.2kubectlapply启动2.2.3将版本修改为v2.0,kubectlapply重新部署三、重新创建3.1重新创建3.2实践3.2.1kubectlapply启动3.2.2将版本修改为v2.0,ku... 查看详情

kubernetes第六篇:k8s的四种部署策略(代码片段)

...录一、前言二、滚动更新2.1滚动更新2.2实践2.2.1新建两个springboot项目,生成两个镜像2.2.2kubectlapply启动2.2.3将版本修改为v2.0,kubectlapply重新部署三、重新创建3.1重新创建3.2实践3.2.1kubectlapply启动3.2.2将版本修改为v2.0,ku... 查看详情

dockercompose部署springboot+mysql项目(代码片段)

DockerCompose部署Springboot+Mysql项目在上一篇文章SpringBoot(Maven)+Docker打包中,我们实现了将Springboot项目源代码一键打包部署为Docker服务。上文中,我们的Springboot项目如果要与数据库的连接,就必须连接公网IP来使用&... 查看详情