k8s发布应用
前言
首先以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机器上操作。
- 把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
- 制作镜像,在/usr/local/hello目录下执行命令:
docker build -t 192.168.109.134:20080/dhorse/hello:1.0.0 .
其中,192.168.109.134:20080是Harbor镜像仓库地址,dhorse是项目名。
- 登录仓库并上传镜像
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进行自动发布。
k8s发布应用的更多相关文章
- K8S发布解释型语言应用的最佳实践
说明 我们知道,k8s在发布编译型语言的应用时,几乎不用多考虑,就会选择将编译好jar/war包(java语言)或者二进制文件(golang/c++)直接打到镜像当中,生成新的应用镜像,然后将镜像推到 ...
- k8s发布文件记录
1.环境变量配置项 apiVersion: v1 # api版本 kind: ConfigMap # 配置项 metadata: name: common-key-svc # 名字 namespace ...
- K8S发布策略,无损发布
大家好,相信大部分公司都已经使用K8S进行容器管理和编排了,但是关于K8S的发布策略,还有很多同学不太清楚,通过这篇文章的介绍,相信大家对目前K8S的发布情况有一个概括的认识.总结下来,共有如下几种: ...
- K8S发布应用步骤详解
前言 首先以SpringBoot应用为例介绍一下k8s的发布步骤. 1.从代码仓库下载代码,比如GitLab: 2.接着是进行打包,比如使用Maven: 3.编写Dockerfile文件,把步骤2产生 ...
- 入门- k8s发布应用服务 (五)
目标 了解 Kubernetes 的 Service(服务) 了解 Labels(标签)和 LabelSelector(标签选择器)与 Service(服务)的关系 在 kubernetes 集群中, ...
- k8s之发布管理架构图01
k8s发布管理所用到的组件
- kubernetes(K8S)快速安装与配置集群搭建图文教程
kubernetes(K8S)快速安装与配置集群搭建图文教程 作者: admin 分类: K8S 发布时间: 2018-09-16 12:20 Kubernetes是什么? 首先,它是一个全新的基于容 ...
- 比Minikube更快,使用Kind快速创建K8S学习环境
简述 K8S 如火如荼的发展着,越来越多人想学习和了解 K8S,但是由于 K8S 的入门曲线较高很多人望而却步. 然而随着 K8S 生态的蓬勃发展,社区也呈现了越来越多的部署方案,光针对生产可用的环境 ...
- k8s中部署springcloud
安装和配置数据存储仓库MySQL 1.MySQL简介 2.MySQL特点 3.安装和配置MySQL 4.在MySQL数据库导入数据 5.对MySQL数据库进行授权 1.MySQL简介 MySQL 是一 ...
- 2.k8s的架构
之前了解了k8s到底是什么,接下来看看k8s的组成. 一.Kubernetes架构 学习k8s,最终目的是为了部署应用,部署一个完整的k8s, 就要知道k8s的组成.k8s主要包含两大部分: 中间包含 ...
随机推荐
- 2021-10-22:颠倒二进制位。颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不
2021-10-22:颠倒二进制位.颠倒给定的 32 位无符号整数的二进制位.提示:请注意,在某些语言(如 Java)中,没有无符号整数类型.在这种情况下,输入和输出都将被指定为有符号整数类型,并且不 ...
- docker安装rabbitmq:management
1.拉取镜像 docker pull rabbitmq:management 2.安装 docker run -dit --name rabitmq -e RABBITMQ_DEFAULT_USER= ...
- 不是单例的单例——巧用ClassLoader
本文通过如何将一个单例类实例化两次的案例,用代码实践来引入 Java 类加载器相关的概念与工作机制.理解并熟练掌握相关知识之后可以扩宽解决问题的思路,另辟蹊径,达到目的. 背景 单例模式是最常用的设计 ...
- 【汇编】老师太hun
老师只是随手发实验项目卡,从未提过实验报告的事情 可是 他却要在 复习周 一下子 收6次 实验报告 也不发资料,不说每次的时间点,不讲实验 这人心中有 学生 吗? 上课发 上个班直播的录播 一节课就发 ...
- 关于ESXi下如何查看磁盘SMART信息(SATA & NVMe)的教程
ESXi下查看磁盘SMART比较麻烦,并且SATA协议的和NVMe协议的操作不一样,下面分别进行详细陈述 SATA--使用smartctl查看 本部分参考梦幻生命@CSDN(原文链接https://b ...
- 小程序使用echarts 在一个页面打印多个饼图的坑
一.下载echarts微信版 下载地址:https://github.com/ecomfe/echarts-for-weixin 或者直接云盘下载 https://pan.baidu.com/s/1i ...
- 【rabbitMQ】-延迟队列-模拟控制智能家居的操作指令
这个需求为控制智能家居工作,把控制智能家居的操作指令发到队列中,比如:扫地机.洗衣机到指定时间工作 一.什么是延迟队列? 延迟队列存储的对象是对应的延迟消息,所谓"延迟消息" ...
- 如何使用 Megatron-LM 训练语言模型
在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单.我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练.Hugging Face Accelerate 的创建 ...
- 国际顶刊《PNAS》:爱发朋友圈的人,更容易长寿
点上面关注我们,每日获取前沿新知 近几十年来,智能手机和网络的普及率越来越高,与此同时,"朋友圈"应运而生. 在这个朋友圈里,有人十分活跃,而也有些人是"国家级潜水运动员 ...
- C# 版本特性一览
前言 使用 C# 作为开发语言已经 15 个年头了,受惠于 C# 的不断更新,伴随着大量的新特性与大量语法糖,让我更加容易写出简洁.高效的代码.日常中大量特性早已信手拈来,当然从未尝试过的特性更是难以 ...