k8s springboot 文件_k8s-6:k8s+springBoot项目

(1)创建一个springBoot项目,使用idea或者sts都可以创建一个简单的springBoot项目,我这里使用sts创建项目

(2)点击【file】,点击【new】,点击【project】,点击【spring boot】,点击 【spring starter project】

(3)创建一个SpringBoot demo项目

(4)pom文件增加 spring-boot-starter-web包和org.apache.maven.plugins包

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-maven-plugin

org.apache.maven.plugins

maven-surefire-plugin

true

(6) 再application.propertis中配置端口号和项目地址

server.servlet.context-path=/

server.port=9999

(7)在项目创建一个Demo.class文件

package com.thunisoft.camera.k8s;

import  org.springframework.web.bind.annotation.RequestMapping;

import  org.springframework.web.bind.annotation.RestController;

@RestController

@RequestMapping(value = "/")

public class Demo {

@RequestMapping("/str")

public String str() {

return "this is k8s demo";

}

}

(8)运行一下,在浏览器上访问一下

(9)项目打成jar包,选中项目【右键】、【Run as】、【4、maven clean】;

选中项目【右键】、【Run as】、【6、maven install】;

(10)在windows本地测试使用.bat文件,在centOS上运行文件时.sh文件,dockerfile是用于创建镜像的,yaml文件是执行镜像文件的。

在windows上运行Runjar.bat访问浏览器.

G:

CD G:/apk/demo

java -jar k8s-demo-0.0.1.jar

(11) 在centOS上创建一个demo文件夹.将jar包放到demo文件夹中,

创建一个demo.sh文件,编辑demo.sh文件,将下方内容复制到demo.sh文件中,红色文字代表项目jar包,启动方式./demo.sh

#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

JAVA_OPT="-Xmx4000m"

##执行的应用

APP_NAME=k8s-demo-0.0.1.jar

#使用说明,用来提示输入参数

usage() {

echo "Usage: sh exchange.sh [start|stop|restart|status]"

exit 1

}

#检查程序是否在运行

is_exist(){

pid=`ps -ef|grep $APP_NAME|grep java |grep -v grep|awk '{print $2}'`

#如果不存在返回1,存在返回0

if [ -z "${pid}" ]; then

return 1

else

return 0

fi

}

#启动方法

start(){

is_exist

if [ $? -eq 0 ]; then

echo "${APP_NAME} is already running. pid=${pid}"

else

nohup java ${JAVA_OPT} -jar ${APP_NAME} &

fi

}

#停止方法

stop(){

is_exist

if [ $? -eq "0" ]; then

kill -9 $pid

echo "${APP_NAME} has stopped successfully"

else

echo "${APP_NAME} is not running"

fi

}

#输出运行状态

status(){

is_exist

if [ $? -eq "0" ]; then

echo "${APP_NAME} is running. Pid is ${pid}"

else

echo "${APP_NAME} is NOT running."

fi

}

#重启

restart(){

stop

sleep 5

start

}

#根据输入参数,选择执行对应方法,不输入则执行使用说明

case "$1" in

"start")

start

;;

"stop")

stop

;;

"status")

status

;;

"restart")

restart

;;

*)

usage

;;

esac

(12) 设置文件权限,并运行文件,在浏览器上访问,记住我们设置的项目端口号.访问的是虚拟机IP

chmod +x demo.sh

然后运行文件

./demo.sh start

(13)关闭项目

[root@master demo]# ./demo.sh stop

k8s-demo-0.0.1.jar has stopped successfully

(14)修改Dockerfile,先创建一个Dockerfile文件,放到虚拟机demo文件夹内

#基础镜像jdk

FROM java:8

#指定维护者信息

MAINTAINER wangpeng

#挂载的路径

VOLUME /tmp

#将jar打入镜像之中

ADDk8s-demo-0.0.1.jar demo.jar

#容器向外暴露的端口 此端口没用

#EXPOSE 8999

#入口命令,执行jar

ENTRYPOINT ["java","-jar","/demo.jar"]

(15) 通过docker命令创建镜像.docker build 创建的意思 -t (tag)的意思 打成镜像名称 wangpeng/demo, 版本号 v0.0.1  后面的. 代表当前目录上.

docker build -t wangpeng/demo:v0.0.1 .

(16)通过docker命令查看镜像

docker iamges

成功生成一个wangpeng/demo:v0.0.1版本的镜像

(17) 编写yaml文件,创建一个demo.yaml文件.注意yml文件格式,层级结构

apiVersion: v1

kind: ReplicationController

metadata:

name: k8s-demo

spec:

replicas: 1

selector:

app: k8s-demo

template:

metadata:

labels:

app: k8s-demo

spec:

containers:

- name: cipher

#选择镜像文件名称

image: wangpeng/demo:v0.0.1

#默认在本机找镜像

imagePullPolicy: IfNotPresent

---

apiVersion: v1

kind: Service

metadata:

name: k8s-demo

spec:

#使用NodePort端口

type: NodePort

ports:

#原来项目设置的端口

- port: 9999

targetPort: 9999

#设置访问端口为30100 ,可以自己设置

nodePort: 30100

selector:

app: k8s-demo

(18)通过docker命令运行yaml文件

kubectl create -f demo.yaml

访问项目时,无法找到

并且项目的demo,pode状态为Pending时,执行以下内容

kubectl taint nodes --all node-role.kubernetes.io/master-

(19) 是否允许master节点上部署pod

允许master节点部署pod

kubectl taint nodes --all node-role.kubernetes.io/master-

如果不允许调度

kubectl taint nodes master1 node-role.kubernetes.io/master=:NoSchedule

污点可选参数

NoSchedule: 一定不能被调度

PreferNoSchedule: 尽量不要调度

NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod

忽略错误就可以

(20)访问项目

完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值