首页 > 其他分享 >K8S部署应用详解

K8S部署应用详解

时间:2023-03-14 13:22:12浏览次数:40  
标签:k8s 1.0 dhorse 部署 jar 详解 镜像 K8S hello

# 前言

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

1.从代码仓库下载代码,比如GitLab;
2.接着是进行打包,比如使用Maven;
3.编写Dockerfile文件,把步骤2产生的包制作成镜像;
4.上传步骤3的镜像到远程仓库,比如Harhor;
5.编写Deployment文件;
6.提交Deployment文件到k8s集群;

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

# 详细步骤

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

## 打包

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

```shell
mvn clean package
```

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

## 制作镜像

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

1. 把hello-1.0.0.jar放到/usr/local/hello目录下,并在该目录下创建Dockerfile文件,内容为:

```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目录的文件为:

```shell
-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
```

2. 制作镜像,在/usr/local/hello目录下执行命令:

```shell
docker build -t 192.168.109.134:20080/dhorse/hello:1.0.0 .
```

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

3. 登录仓库并上传镜像

```shell
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文件,内容如下:

```Deployment
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目录下,并在当前目录执行如下命令:

```shell
kubectl apply -f hello-k8s.yml
```

稍后,再执行如下命令:

```shell
kubectl get pods -o wide
```

输出结果如下:

```shell
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接口:

```shell
curl http://10.32.1.180:8080/hello
```

至此,发布结束,同时欢迎使用[DHorse](https://github.com/tiandizhiguai/dhorse) (https://github.com/tiandizhiguai/dhorse)进行自动发布。

标签:k8s,1.0,dhorse,部署,jar,详解,镜像,K8S,hello
From: https://www.cnblogs.com/tiandizhiguai/p/17214624.html

相关文章

  • K8s
    k8s安装想用K8s,还得先会Docker吗?其实完全没必要Docker安装和加入K8S安装k8s、docker ......
  • dirsearch web网站目录扫描工具详解
    文章目录​​1dirsearch介绍​​​​2安装​​​​3实战演练​​​​3.1仅指定网址-u​​​​3.2指定网站语言-e​​​​3.3指定字典-w​​​​3.4递归目录-r​......
  • Python的namedtuple使用详解
    namedtuple又名具名元组,因为普通元组的局限性,不能为元组的数据进行命名,所以我们并不知道一个元组所要表达的意义,所以在这里引入了collections.namedtuple这个工厂函数,来构......
  • 聊聊如何在K8S中实现会话保持
    前言故事的起因是朋友所在的部门最近基于auth2实现单点登录,他们在测试环境单点登录,运行得好好的,但他们把单点登录上到预发布环境,发现单点登录不好使了。他们有部分系统是......
  • 安全基线检查及部分中间件部署规范
    (一)Centos7安全基线0x01初始设置1.文件系统配置:2.安全启动设置:3.强制访问控制:0x02服务配置1.时间同步设置:0x03网络配置1.hosts设置:2.防火墙配置0x04......
  • 转:numpy中expand_dims()函数详解
    注:本文只是本人的通俗理解,有些专业概念表达不是很清楚,但我相信你读完可以理解该函数并会使用。expand_dims(a,axis)中,a为numpy数组,axis为需添加维度的轴,a.shape将在该轴......
  • 【MySQL】substring_index 函数详解
    【MySQL】substring_index函数详解命令格式stringsubstring_index(string<str>,string<separator>,int<count>)命令说明截取字符串str第count个分隔符之前的字......
  • 2023-03-13 递归详解
    1.递归基础和递归的宏观语意本质上,将原来的问题,转化为更小的同一问题举例代码publicclassArrSum{privateintres=0;publicintsum(int[]arr){......
  • K8S-Helm
    一.helm概述1.1什么是helm在没使用helm之前,向kubernetes部署应用,我们要依次部署deployment、svc等,步骤较繁琐。随着很多项目微服务化,复杂的应用在容器中部署以......
  • showdoc文档管理平台部署
    【工具相关】showdoc文档管理平台部署 一、前言1、需求来由#内部资料归档混乱,内部归档地址不一,不利于资料查找及工作交接更新不及时,本地文档更新完,未同步上传......