首页 > 其他分享 >K8S发布应用步骤详解

K8S发布应用步骤详解

时间:2023-02-22 19:25:08浏览次数:51  
标签:K8S 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、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

至此,发布结束,同时欢迎使用DHorse进行自动发布。

标签:K8S,1.0,步骤,jar,详解,镜像,k8s,local,hello
From: https://www.cnblogs.com/tiandizhiguai/p/17145553.html

相关文章

  • Java ”框架 = 注解 + 反射 + 设计模式“ 之 注解详解
    Java”框架=注解+反射+设计模式“之注解详解每博一文案刹那间我真想令时光停住,好让我回顾自己,回顾失去的年华,缅怀哪个穿一身短小的连衣裙和瘦窄的短衫的小......
  • vue虚拟Dom详解
    1.什么是虚拟dom?虚拟dom本质上是一个js对象,用来描述视图的界面结构,在vue中,每个组件都有一个render函数,每个render函数都会返回一个虚拟dom树,这意味着每个组件都对应着一......
  • centos7.6 k8s 1.23.2 docker version 23.0.1 init
      dockerpullregistry.aliyuncs.com/google_containers/kube-apiserver:v1.23.2kubeadminit--kubernetes-version=v1.23.2--image-repositoryregistry.aliyuncs......
  • k8s工作端二进制部署-kubelet
    本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。二进制下载地址压缩包下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG......
  • 详解神经网络基础部件BN层
    摘要:在深度神经网络训练的过程中,由于网络中参数变化而引起网络中间层数据分布发生变化的这一过程被称为内部协变量偏移(InternalCovariateShift),而BN可以解决这个问题。......
  • js原型链污染详解
    前言之前打某湖论剑,两道js的题,给我整懵逼了,发现以前都没对js做过多少研究,趁着被毒打了,先研究一波js原型链,未雨绸缪。基础protype首先我们研究js原型链,得搞明白原型是什......
  • createrepo 命令详解
    createrepo命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。语法:createrepo[option]<directory>参数选项......
  • K8s的环境变量
    k8s-pod注入环境变量变量值几种定义方式:自定义变量值变量值从Pod属性获取变量值从Secret、ConfigMap获取参考yaml文件---apiVersion:v1kind:Podmetadata:n......
  • k8s介绍与重要概念
    1、k8s介绍Kubernetes(k8s)是Google开源的容器集群管理系统。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大......
  • 浏览器对象详解
    1、浏览器对象模型参考资料:知识整理——浏览器对象模型BOM:BrowserObjectModel(浏览器对象模型),浏览器模型提供了独立于内容的、可以与浏览器窗口进行滑动的对象结构,就是......