新建rc(replication controller)

以下操作在master1做

rc是一套程序部署的配置,k8s会根据配置自动运行和管理程序,例如自动启动程序,程序挂了自动重启等等

rc配置一般都是写到配置文件(扩展名yaml),然后指定yaml文件来新建rc,k8s很多“东西”都是这种方式配置

在任意目录(最好是存放文件资料的地方),新建文件springboot-helloworld-rc.yaml,内容如下:

PS:部分项有注释

apiVersion: v1

kind: ReplicationController#对象类型,这里是rc(全称ReplicationController)

metadata:

name: helloworld#名称

labels:

name: helloworld#标注

spec:

replicas: 3#运行容器的副本数,修改这里可以快速修改分布式节点数量

selector:

name: helloworld

template:

metadata:

labels:

name: helloworld

spec:

containers:#docker容器的配置

- name: helloworld

image: 192.168.31.141:5000/springio/ewater:0.0.1#pull镜像的地址

imagePullPolicy: IfNotPresent#pull镜像时机,

ports:

- containerPort: 20801#容器对方开放端口

cd到yaml的目录,运行:kubectl create -f springboot-helloworld-rc.yaml,根据yaml的配置创建rc(创建什么类型对象是在yaml里面指定,所有类型对象创建命令都是kubectl create)

运行:kubectl get rc,可查看rc列表

运行:kubectl get pods,可查看运行的pod列表

Pod启动比较容易出错,以下详细说明:

首先pod可以理解为docker容器,例如本文rc配置了运行副本(容器)数是3,所以就创建了3个pod(容器)

Pod的状态(status)是running(运行中)是正常的,如果是其他值说明启动未成功

未成功有可能是pull镜像比较慢,这只能等

未成功也有可能是启动失败,可以用命令kubectl describe pod helloworld-7jpm5(helloworld-7jpm5代表pod名称),通过查看某个pod的启动日志来调试

例如下图就说明pull镜像时出问题

另外可以用命令kubectl logs helloworld-7jpm5(helloworld-7jpm5代表pod名称)查看pod的命令行日志,相当于在cmd运行jar包的命令行输出

rc和pod成功创建和运行,相当于java程序在k8s已运行成功,但外网还不能访问,接下来要创建service


新建service

以下操作在master1做

Service在k8s体系总负责沟通k8s内外网络配置(注意内外只是指k8s网络的内外,而不是局域网和互联网)

在任意目录(最好是存放文件资料的地方),新建文件springboot-helloworld-svc.yaml,内容如下:

apiVersion: v1

kind: Service #对象类型,这里是service

metadata:

name: helloworld #名称

labels:

name: helloworld #标注

spec:

type: NodePort

ports:

- port: 20801 #service(对内)的端口

targetPort: 20801 #pod的端口

nodePort: 32008 #service对外的端口

selector:

name: helloworld

cd到yaml文件所在目录,运行:kubectl create -f springboot-helloworld-svc.yaml,根据yaml文件创建service

可以运行kubectl get services查看到新的service

PS:20801是内部端口,32008是对外端口

此时可以在浏览器访问测试是否部署成功,注意ip是master1的,端口是service的对外端口

Springboot(java)程序部署到k8s的更多相关文章

  1. 从安装linux(centos7.6)系统到部署springboot java程序到k8s(大纲)

    本文说明从安装linux系统开始,一直到在k8s运行springboot程序全过程 本文假设在自己电脑操作,因此linux系统使用vmware虚拟机,linux发行版使用centos 7.6.1810 ...

  2. 开发阶段,将SpringBoot应用快速部署到K8S

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. 基于idea做java程序的本地k8s调试-skaffold(一)

    先介绍下本篇文章是基于ideas下开发微服务的场景,大家都知道微服务嘛,一个个微的服务...很多,先不谈调试,要跑起来都费力,可能的原因有: 环境变量的配置,如果多个项目穿插着来,env变量可能废了, ...

  4. 基于idea做java程序的本地k8s调试-skaffold(二)

    上一篇讲完了java代码发到本机minikube中run,这篇来讲讲minkube中进行debug(idea下) 话说,上篇是把pigx基础infra微服务都发到了minikube中,这些微服务是ru ...

  5. Linux中部署JAVA程序

    JAVA程序在开发完成后,需要部署到服务器,如果是WEB项目,需要部署到WEB服务器,否则部署到应用服务器. JAVA是跨平台的编程语言,服务器的操作系统可以是Windows.Linux或者其它,下面 ...

  6. 写个shell脚本搭载jenkins让你的程序部署飞起来

    [转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11399251.html    作者:jstarseven    码字挺辛苦的.....  说明 ...

  7. Java Project部署到Tomcat服务器上

    所有的JAVA程序员,在编写WEB程序时,一般都通过工具如 MyEclipse,编写一个WEB Project,通过工具让这个WEB程序和Tomcat关联.其实在我们可以通过JAVA程序部署到Tomc ...

  8. Java Service Wrapper将java程序设置为服务

    有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper(下面简称wrapper)是目前较为流行的将Java程序部署成Windows服务的解决方案, 本文将讨论 ...

  9. Java Service Wrapper 发布Java程序为Windows服务

    下载Windows版本:https://www.krenger.ch/blog/java-service-wrapper-3-5-37-for-windows-x64/ 转自:F:\java\bhGe ...

随机推荐

  1. RPA走专有云还是公共云?阿里云RPA公共云给出了这样几组数据…

    自从近年国外UIPATH.AUTOMATION ANYWHERE.BLUE PRISM等RPA企业的崛起,Robotic Process Automation(RPA)走进了人们视野.它以节省成本.提 ...

  2. java生成图片验证码(转)--封装生成图片验证码的工具类

    博客部分内容转载自 LonlySnow的博客:后台java 实现验证码生成 1.controller方法 @RequestMapping(value = "/verifycode/img&q ...

  3. Redis实战(十一)Redis面试题

    序言 单线程的redis为什么这么快? 1.纯内存操作不需要进行磁盘的 IO 2.单线程操作避免了频繁上下文切换 3.采用非阻塞的多路I/O复用模型 什么是路I/O复用模型? 核心是监听socket, ...

  4. input 禁止删除部分文字

    用label和所需的input链接,label部分就是禁止删除的部分.<input type="text" name="city" value=" ...

  5. C++11 lambda表达式小结

    目录 简介 结构 return type parameter list capture list 值捕获和引用捕获 变量修改 隐式和显式捕获 捕获列表小结: problems 1.为什么需要使用mut ...

  6. shell 中使用正则表达式

    ls | xargs echo | sed 's/.*\(\w\+\)\s\(\w\+\s\)*\1d.*/\1/' 说明 \w\+表示一段连续的字符串 \s\+ 一个或者多个空格 \s* 0个或者多 ...

  7. 模拟赛DAY 2 T2不老梦

    [题目背景] 于万人中万幸得以相逢,刹那间澈净明通. 成为我所向披靡的勇气和惶恐,裂山海,堕苍穹. 爱若执炬迎风,炽烈而哀恸,诸般滋味皆在其中. 韶华宛转吟诵,苍凉的光荣,急景凋年深情难共. ——银临 ...

  8. 十四、python字典中的方法汇总

    '''1.访问.修改,删除字典中的值:''' dict={'a':'11','b':'22','c':'33','d':'44'}print dict['a'],dict['d'] #访问dict[' ...

  9. day63—JavaScript浏览器对象cookie

    转行学开发,代码100天——2018-05-18 今天的主要学内容时JavaScript中浏览器对象——cookie. cookie用于存储web页面的用户信息,其存储容量很小,一般几k左右.如常见的 ...

  10. spring自动注入的三种方式

    所谓spring自动注入,是指容器中的一个组件中需要用到另一个组件(例如聚合关系)时,依靠spring容器创建对象,而不是手动创建,主要有三种方式: 1. @Autowired注解——由spring提 ...