k8s-6:k8s+springBoot项目

百度网盘链接:https://pan.baidu.com/s/1ZL07VO3ysXpyr5qMpMEHiw提取码: aa86

(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包

<dependencies>

          <dependency>

              <groupId>org.springframework.boot</groupId>

              <artifactId>spring-boot-starter</artifactId>

          </dependency>

          <dependency>

              <groupId>org.springframework.boot</groupId>

              <artifactId>spring-boot-starter-web</artifactId>

          </dependency>

</dependencies>

     <build>

          <plugins>

              <plugin>

                   <groupId>org.springframework.boot</groupId>

                   <artifactId>spring-boot-maven-plugin</artifactId>

              </plugin>

              <!-- 要使生成的jar可运行,需要加入此插件 -->

              <plugin>

                   <groupId>org.apache.maven.plugins</groupId>

                   <artifactId>maven-surefire-plugin</artifactId>

                   <configuration>

                        <skip>true</skip>

                   </configuration>

              </plugin>

          </plugins>

     </build>

(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)访问项目

完毕

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容