minikube(k8s)部署spring boot项目(一)

位置:首页>文章>详情   分类: 教程分享 > Linux和Shell教程   阅读(971)   2024-04-17 12:31:29

环境准备

minikube 安装,参考minikube k8s 安装详细教程

spring boot demo项目一个

spring boot项目

maven 主要依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


构建主要配置,配置一个打包后的名称:
打包名称

项目主要内容,一个文件 

package net.ifok.demo.k8s;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.net.InetAddress;
import java.net.UnknownHostException;

@RestController
@SpringBootApplication
public class DemoK8sApplication {

    @GetMapping("/info")
    public String getInfo() throws UnknownHostException {
        InetAddress addr = InetAddress.getLocalHost();
        String address = addr.getHostAddress();
        String hostName= addr.getHostName();
        return System.getProperty("os.name")+":"+address+":"+hostName;
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoK8sApplication.class, args);
    }

}


Get请求,返回一个信息

构建docker镜像


首先将上面的spring boot项目打包为一个jar文件
k8s-boot-app.jar

创建Dockerfile

FROM openjdk:8-alpine
#更新Alpine的软件源为国内(清华大学)
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" > /etc/apk/repositories

RUN apk update \
        && apk upgrade \
        && apk add --no-cache bash \
        bash-doc \
        bash-completion \
        && rm -rf /var/cache/apk/* \
        && /bin/bash
ADD k8s-boot-app.jar /
EXPOSE 8080
CMD ["java","-Xms256M","-Xmx256M","-Duser.timezone=Asia/ShangHai", "-jar", "/k8s-boot-app.jar"]


将dockerfile和项目文件上传到Linux服务器上的一个目录。接下来进行docker镜像构建

sudo docker build -t k8s-boot-app:1.0 ./


构建完成后可以通过命令查看

sudo docker images

编写k8s deployment配置文件

k8s-boot-app-deployment.yml

登录后查阅

此处内容已经隐藏,需要登录后刷新查阅

登录/注册


部署spring boot项目到k8s


部署命令:

sudo kubectl create -f ./k8s-boot-app-deployment.yml


查看deployment信息

sudo kubectl get deployments


开放访问端口

sudo kubectl expose deployment k8s-boot-app-deployment --type=NodePort


查看开放端口的服务信息

sudo kubectl get services


查看部署的prod信息

sudo kubectl get pods


查看某个prod的日志信息

sudo kubectl logs -f springboot-k8s-template-deployment-687f8bf86d-lcq5p

提示:springboot-k8s-template-deployment-687f8bf86d-lcq5p 为上面查询到的prod名称


获取访问url地址

sudo minikube service k8s-boot-app-deployment --url

获取访问地址

浏览器打开访问接口

接口访问

查看k8s的仪表盘

deployment信息
deployment信息

prod信息
prod信息

其他命令:

sudo kubectl create -f ./k8s-boot-app-deployment.yml #部署k8s应用
sudo kubectl get deployments #查看deployment信息

sudo kubectl expose deployment k8s-boot-app-deployment --type=NodePort #开放端口访问
sudo kubectl get services #查看services信息,如端口映射情况
sudo kubectl delete service nginx-service #删除service

sudo kubectl get pods #获取部署的prod列表信息
sudo kubectl logs -f springboot-k8s-template-deployment-687f8bf86d-lcq5p #查看某个pod的日志

sudo minikube service k8s-boot-app-deployment --url #获取访问url

sudo kubectl delete -f ./k8s-boot-app-deployment.yml #删除服务

 


下一期讲解如何通过服务指定端口访问项目

 

 

地址:https://www.leftso.com/article/971.html

相关阅读

环境准备minikube 安装,参考minikube k8s 安装详细教程spring boot demo项目一个spring boot项目 maven 主要依赖 &lt;depe...
接上篇文章minikube(k8s)部署spring boot项目(一)上篇文章讲解了k8s部署spring boot demo项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用
环境本次minikube安装环境为Ubuntu 18.04.6 LTS安装docker-ce参考:Ubuntu 在线安装 Docker-左搜 (leftso.com)注意配置docker镜像地址...
skywalking 是一款不错的java apm监控服务,比zipkin功能更强大,需要的服务器配置也更多一些
Docker swarm 简介Docker swarm 集群,Docker swarm是docker官方提供的一种集群方式,用于小量微服务部署还算不错,比庞大的k8s体系更轻量。节点 运行 Do...
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel注意必须安装java-1.8.0-openjdk-devel,否则没有javac命令
前置条件安装部署好graylog server创建graylog input 打开System/Inputs菜单选择输入类型为filebeat进行创建input创建inputinput信息配置i...
继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程
Docker安装部署Redisdocker 安装部署Redis环境Linux系统dockerdocker-compose 相关文章:Ubuntu 在线安装 Docker-左搜 (leftso.c...
acme.sh说明acme.sh是一个Let's SSL证书颁发的官方推荐shell脚本开源免费安装acme.shcurl https://get.acme.sh | sh提示:普通用户和 ro...