kubernetes(K8s)学习(一)

本文主要是搭建一个k8s平台,并部署一个springboot的jar包,后续以此作为学习k8s的环境。

1. 搭建k8s集群

        网上有很多指导,大家可以在网上搜索一下,比如这个:K8s搭建集群-CSDN博客,本人通过VMware安装3台虚拟机,部署了3个节点,最终的效果如下,master节点的ip是192.168.102.10,node1节点的ip是192.168.102.11,node2节点的ip是192.168.102.12:

2. 编写java代码

        本文实现一个springboot访问接口,在外部可通过80端口访问,关键代码如下:

package com.kingyal.test.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;@RestController
public class HelloWorldController {private static int count = 0;@RequestMapping("/hello")public String hello(String name){count++;String time = getCurrenttime();String printLog = "hello String boot, current time is :"+time +" ,count = " + String.valueOf(count);System.out.println(printLog);return printLog;}private String getCurrenttime() {LocalDateTime currentDateTime = LocalDateTime.now();DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");String timestamp = currentDateTime.format(formatter);return timestamp;}
}

3. 编写Dockerfile文件

        dockerfile文件的目的是编译出对应的docker镜像,该文件必须命名为Dockerfile:

#基础镜像 java打包需要依赖jdk
FROM openjdk:8-jre-alpine
#将日志打印到/var/log目录下
VOLUME /var/log
#将虚拟机的war包,cp到docker容器内部
COPY springboot_demo-1.0-SNAPSHOT.jar springboot_demo-1.0-SNAPSHOT.jar
#指定docker容器时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Beijing' >/etc/timezone
# 脚本启动
ENTRYPOINT ["sh","-c","java -server -Dfile.encoding=utf-8 -Xms1024m -Xms1536m -jar -Dserver.port=80  -Dspring.profiles.active=prod springboot_demo-1.0-SNAPSHOT.jar"]

4. 编写yaml文件

        编写yaml文件是k8s的关键文件,通过该文件,可以指定pod的相关参数,,该文件的命名必须以.yaml后缀结果,比如可取名为deployment.yaml,详情后续再说:

apiVersion: apps/v1
kind: Deployment
metadata:name: demo-server
spec:replicas: 1selector:matchLabels:app: demo-servertemplate:metadata:labels:app: demo-serverspec:containers:- name: demo-serverimage: an/demo_server:v1.0.0ports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: demo-server
spec:selector:app: demo-serverports:- protocol: TCPport: 80targetPort: 80nodePort: 31001type: NodePort

5. 部署到k8s,查看结果

将Dockerfile,yaml文件deployment.yaml,以及jar包上传到master节点的某个目录下:

将Dockerfile,以及jar包分别上传到node1,node2节点的某个目录下:

由于没有做镜像仓库,因此,需要在3个节点都编译镜像,在3个节点都执行此命令:docker image build -t an/demo_server:v1.0.0 .

执行docker images命令可看到镜像已经编译完成:

在master节点执行yaml文件,即执行此命令 kubectl apply -f deployment.yaml:

执行此命令 kubectl get pod -A -owide 查看pod运行状态,此时可以看到jar包对应的镜像在node2节点上生成了一个pod,并且正在运行中:

在mster节点执行此命令 curl http://192.168.102.12:31001/hello ,可以访问到pod中的tomcat返回的数据:

也可以在浏览器中输入 http://192.168.102.12:31001/hello,访问到数据:

至此,已经实现在k8s中部署jar包并成功访问,后续基于此环境继续深入学习k8s。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1555642.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

昇思学习打卡营第33天|基于MindSpore的恶性皮肤肿瘤识别

1. 实验介绍 本次实验的目标是基于MindSpore框架,训练一个ResNet50模型,用于恶性皮肤肿瘤的分类识别。本实验将使用包含四类皮肤肿瘤图片的数据集,针对ResNet50模型进行微调,训练出一个能够精准分类皮肤病的模型。主要过程包括数据…

Java项目实战II基于Java+Spring Boot+MySQL的房产销售系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 随着房地产市场的蓬勃发展,房产销售业务日益复杂,传统的手工管理方式已难以满…

指针赋值or常数赋值

int main (){int a 10;int b ;b a;int *c &a;int *d c; } 常数 a,b赋值: 都是将存储的值(10)赋值给别人。 指针赋值也是类似的: 指针存储的值(&a)为地址,就是把c指向的地址赋值给…

SaaS 应用如何助长网络犯罪

过去十年,软件即服务 (SaaS)的采用呈爆炸式增长,彻底改变了我们的工作方式。 从电子邮件平台到通信和协作应用程序,再到文件存储和共享服务,这些工具有望为我们的日常工作生活带来更大的灵活性和效率,尤其是在当今的远…

2.创建第一个MySQL存储过程(2/10)

引言 在现代数据库管理中,存储过程扮演着至关重要的角色。它们是一组为了执行特定任务而编写的SQL语句集合,这些语句被保存在数据库中,并且可以被多次调用执行。存储过程不仅可以提高数据库操作的效率,还能增强数据的安全性和一致…

unity 2d 近战攻击判定的三种方式

1. 给攻击帧添加碰撞盒 优点:配置直观,无需事件触发 缺点:无法定制,效率低 检测放在子物体,可以控制旋转 添加触发器事件 注意OnTriggerEnter2D只会在挂载了collider的组件上触发 protected virtual void OnTrigge…

降压芯片TPS54821

降压芯片TPS54821 介绍 价格低廉,只需1.5元。是一个同步整流降压BUCK电路。MOS管内置。输入电压为4.5V至17V,输出电压为0.6V到15V,输出电流最大到8A。是QFN封装,焊接时有些许困难。得益于QFN封装,其引线电感非常的小…

【深入理解SpringCloud微服务】手写实现断路器算法

【深入理解SpringCloud微服务】手写实现断路器算法 断路器状态切换断路器接口断路器算法实现相关属性failed()success()canPass() 断路器状态切换 在分析断路器算法前,我们先复习一下断路器的状态转换。 断路器一般有三个状态:关闭、打开、半开。 断路…

PP-Structure 快速入门

PP-Structure 快速入门 1. 环境准备2.快速使用2.1 命令行使用2.1.1 图像定位布局分析表格识别2.1.2 布局分析表格识别2.1.3 布局分析2.1.4 表格识别2.1.5 关键信息提取2.1.6 布局恢复2.2 python 脚本使用2.2.1 图像方向布局分析表格识别2.2.2 布局分析表格识别2.2.3 布局分析2…

正则表达式匹配英文字符

正则表达式匹配英文 20 个字符,包括大写,小写。 根据搜索结果,看到 honeymoose 分享过一个正则表达式的要求是: 匹配 20 个英文字符(大写、小写都包括)。 那么这个正则表达式可以写成: ^[a-zA-Z]{20}$解释一下: ^ 表示匹配字符串的开始[a-z…

pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)

靶机介绍 来自 vulnhub 主机发现 ┌──(kali㉿kali)-[~/testPwnos1.0] …

EtherCAT 转 EtherNet/IP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899协议转换通信网关 EtherCAT 转 EtherNet/IP GW系列型号 MS-GW12 概述 MS-GW12 是 EtherCAT 和 EtherNet/IP 协议转换网关,为用户提供两…

基于Vue的汽车维修配件综合管理系统设计与实现SpringBoot后端源码

目录 1. 系统背景 2. 系统目标 3. 功能模块 4. 技术选型 5. 关键技术点 6. 实现步骤 7. 项目意义 8. 后期展望 1. 系统背景 市场需求分析:随着汽车保有量的不断增加,汽车维修和保养的需求日益增长。车主对维修质量和配件质量的要求也越来越高。汽…

安全防护检测数据集 3500张 PPE 动火 带标注 voc yolo 12类

安全防护检测数据集 3500张 PPE 动火 带标注 voc yolo 分类名: (图片张数, 标注个数) he Imet: (3649,10494) no_ goggles: (2197,4545) no_ mask: (2986, 6918) no_ vest: (2602, 7462) boots: (1802, 765…

VirtualBox虚拟机连接宿主机并能够上网(小白向)

现存问题 windows系统主要使用vmare和virtualbox两种虚拟机,virtualbox相对于vmare更加轻便,但少有博客能够详细说明使用virtualbox的教程。踩了网上的坑后,决定写一篇文章介绍virtualbox虚拟机上网的流程。 需求 1. virtualbox虚拟机与宿主机…

一篇文章搞懂Android 刷卡器对接:RS232 DB9串口通讯,通讯设置,刷卡器API介绍;代码示例;MDB协议;

目录 前言 在一些国家,还没有普及扫码支付的时候,消费者会纸币、硬币或者刷卡进行支付,这里我们讲解一下刷卡支付。 在市面上,有哪家刷卡器公司可以说的上是开通了很多国家的支付银行,那么Nayax和Pax可以说的上是名列前茅,他们适配了很多国家,对接其他国家的银行,让我…

ChatGPT 更新 Canvas 深度测评:论文写作这样用它!

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 ChatGPT又又更新了:基于ChatGPT 4o模型的Canvas 写作和代码功能。目前,仅针对Plus和Team用户。是一个独立的模块,如下所示: 官方…

ISO IEC 18004 2024/2015 Chinese 下载

ISO_IEC 18004 2024.pdf - 蓝奏云文件大小:40.3 M|https://610402220623.lanzouq.com/iqZ122bnx0yjISO IEC 18004-2015 zh-CN.pdf - 蓝奏云文件大小:34.1 M|https://610402220623.lanzouq.com/iEXSB2bnx0hc

G. Gears (2022 ICPC Southeastern Europe Regional Contest. )

G. Gears 思路: 本身这个题并不难,奈何卡了很久后看了题解才做出来,感觉自己好笨。 很容易想到的是,只要确定了一个齿轮的位置,其他齿轮的位置都可以直接推出来。所以当前目标是如何确定第一个齿轮的位置。 令 x [ i …

系统守护者:使用PyCharm与Python实现关键硬件状态的实时监控

目录 前言 系统准备 软件下载与安装 安装相关库 程序准备 主体程序 更改后的程序: 编写.NET程序 前言 在现代生活中,电脑作为核心工具,其性能和稳定性的维护至关重要。为确保电脑高效运行,我们不仅需关注软件优化&#xf…