首页 > 其他分享 >k8s发布应用

k8s发布应用

时间:2023-08-22 20:33:30浏览次数:33  
标签:1.0 jar 发布 应用 镜像 k8s local hello

前言

首先以SpringBoot应用为例介绍一下k8s的发布步骤。

1.从代码仓库下载代码,比如GitLab;

2.接着是进行打包,比如使用Maven;

3.编写Dockerfile文件,把步骤2产生的包制作成镜像;

4.上传步骤3的镜像到远程仓库,比如Harhor;

5.编写Deployment文件;

6.提交Deployment文件到k8s集群;

从以上步骤可以看出,发布需要的工具和环境至少包括:代码仓库(GitLab)、打包环境(Maven)、镜像制作(Docker)、镜像仓库(Harbor)、k8s集群等。
当前,也可以借助一些开源的系统来发布你的应用,比如:Jenkins、https://github.com/512team/dhorse等。

详细步骤

假如有一个名为Hello的SpringBoot应用,服务端口是8080,并且有一个/hello接口。

打包

这里直接从GitLab下载到本地,执行maven打包命令,这里打为Jar包:

mvn clean package

完成以后,生成的包为:hello-1.0.0.jar

制作镜像

以下步骤在具有Docker环境的Linux机器上操作。

  1. 把hello-1.0.0.jar放到/usr/local/hello目录下,并在该目录下创建Dockerfile文件,内容为:
FROM openjdk:8-jdk-alpine
ADD hello-1.0.0.jar /usr/local/hello.jar
ENTRYPOINT ["java", "-jar", "/usr/local/hello.jar"]

则/usr/local/hello目录的文件为:

-rw-r--r-- 1 root root      119 Feb 22 17:50 Dockerfile
-rw-r--r-- 1 root root 21863457 Feb 22 17:07 hello-1.0.0.jar
  1. 制作镜像,在/usr/local/hello目录下执行命令:
docker build -t 192.168.109.134:20080/dhorse/hello:1.0.0 .

其中,192.168.109.134:20080是Harbor镜像仓库地址,dhorse是项目名。

  1. 登录仓库并上传镜像
docker login 192.168.109.134:20080 -u admin -p Harbor12345
docker push 192.168.109.134:20080/dhorse/hello:1.0.0

编写Deployment文件

创建hello-k8s.yml文件,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello
  labels:
    app: hello
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      containers:
      - name: hello
        image: 192.168.109.134:20080/dhorse/hello:1.0.0
        imagePullPolicy: Always

部署应用

以下操作在k8s集群的mater机器上执行。

把hello-k8s.yml文件复制/user/local目录下,并在当前目录执行如下命令:

kubectl apply -f hello-k8s.yml

稍后,再执行如下命令:

kubectl get pods -o wide

输出结果如下:

NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATES
hello-79d56dc985-7dz6q   1/1     Running   0          8s    10.32.1.180   centos06   <none>           <none>

然后在访问/hello接口:

curl http://10.32.1.180:8080/hello

至此,发布结束,同时欢迎使用https://github.com/512team/dhorse进行自动发布。

标签:1.0,jar,发布,应用,镜像,k8s,local,hello
From: https://www.cnblogs.com/tiandizhiguai/p/17649627.html

相关文章

  • lerna 配置发布时 commitlint,提交信息
    要在Lerna配置中添加发布时的commitlint,你可以按照以下步骤进行操作:首先,确保你已经在项目中安装了commitlint。你可以使用以下命令进行安装:npminstall--save-dev@commitlint/cli@commitlint/config-conventional在你的Lerna项目的根目录下创建一个名为.commitl......
  • 企业级应用软件,真的需要人脸识别登录功能吗
    在现代信息化的社会中,人脸识别技术已经被广泛应用于各种场合,如手机解锁、门禁系统、支付验证等。但是,对于企业级用户的软件来说,是否需要支持人脸识别登录的功能,则需要根据具体的业务需求和环境进行权衡。以下是一些不需要支持人脸识别登录的原因。首先,我们需要了解企业级用户的特......
  • 什么是敏捷开发项目管理应用 JIRA 里 User Story 的 Story Point 字段
    在敏捷开发项目管理应用JIRA中,UserStory是一种描述需求的方式,而StoryPoint是一个用于估计开发工作量的度量单位。UserStory在敏捷开发中,UserStory是一种简洁、明确的描述软件功能的方式,其主要目的是从用户的视角定义功能,以便开发人员可以更好地理解用户需求,并为其设计......
  • 哈希,列表,集合,有序集合,慢查询,pipeline,发布订阅,bitmap位图,Hyperloglog
    目录1哈希类型2列表类型3集合类型4有序集合(zset)5慢查询6pipeline与事务7发布订阅8Bitmap位图9HyperLogLog1哈希类型###1---hget,hset,hdelhgetkeyfield#获取hashkey对应的field的value时间复杂度为o(1)hsetkeyfieldvalue#设置hashkey对应的field的value......
  • LAMP搭建流程与应用
    LAMP搭建流程1、环境准备 [root@localhostopt]#systemctlstopfirewalld.service [root@localhostopt]#setenforce02、安装环境依赖包 [root@localhostopt]#yuminstall-y\ gcc\        #c语言编译器 gcc-c++\      #c编译......
  • 鼎友餐饮信息总监杨山海:餐饮新增长依托数智应用,用数字化打造单店盈利模型
    杨山海鼎友餐饮信息总监近20年餐饮行业信息化、数字化决策经验,曾担任新辣道、雕刻时光、青年餐厅、快乐蜂、鲜果时间信数化负责人,主抓数字化转型、系统选型、多接口系统管理等,拥有丰富的餐饮行业数字化转型经验。2000年,杨山海从邯郸进京边学习边打工,经过杨闻钟老师指导和点拨,完成......
  • 智安网络|边缘计算:数字化时代商业应用的新引擎
    随着数字化时代的到来,大数据、物联网和人工智能等技术的快速发展,边缘计算作为一种新兴的计算模式,在商业应用领域正在迅速崛起。边缘计算通过将数据处理和计算功能置于距离数据源更近的边缘设备上,提供了低延迟、高带宽、隐私保护和安全性等优势,因此在各个行业中都有广泛的应用。一、......
  • java应用接口自动化覆盖率统计实践
    一、背景Java应用接口自动化覆盖率统计的意义在于:确保测试覆盖率:通过自动化覆盖率统计,可以确保测试用例对应用程序的各个接口进行了全面的覆盖。这有助于发现潜在的代码错误、逻辑漏洞或者未处理的异常情况。提高代码质量:通过自动化覆盖率统计,可以发现代码中未被测试到的部......
  • 2023 年如何将您的应用提交到 App Store
    您夜以继日地工作来创建您的梦想应用程序。最后,是时候向全世界宣布您的应用程序了。但不知道如何将您的应用提交到AppStore?为您的商店获取现成的移动应用程序将应用程序提交到AppStore可能是一项复杂的任务。但在本指南的帮助下,事情会变得容易得多。这是一份详细指南,可帮助......
  • 微信开发之一键发布群公告的技术实现
    简要描述:设置群公告请求URL:http://域名地址/setChatRoomAnnouncement请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是String登录实例标识chatRoomId是String群号content是String内容请求参数示例{"wId":"349be9......