k8s学习笔记(1)- 简单部署springboot应用
前言:k8s全称kubernetes,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,关于更多的k8s知识,可自行学习
1、k8s环境搭建
k8s环境部署方式
minikube工具部署
参考文当:https://kubernetes.io/docs/setup/learning-environment/minikube/
适合场景:可以快速的部署一个单点的k8s,适合开发人员日常使用kubeadm工具部署
参考文档:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
适合场景:可以通过kubeadm init和kubeadm join快速部署一个k8s集群,目前技术也比较成熟,适用于生产环境快速部署docker for windows k8s部署
参考文档:https://www.cnblogs.com/voidobject/articles/12980005.html
适合场景:可以快速的部署一个单点的k8s,适合开发人员日常使用rancher2.x k8s部署
参考文档:https://docs.rancher.cn/
http://docs.rancher.cn/docs/k3s/_index
适合场景:快速部署一个k8s集群,Rancher 是一个完整的软件堆栈,技术成熟,适用于生产环境快速部署
2、k3s介绍
K3s 是由 Rancher Labs 发布的一款开源、极轻量的Kubernetes 发行版,通过了CNCF一致性认证,适用于在资源有限的环境中运行Kubernetes。
K3s主要用于部署在资源受限的边缘计算场景中,也可以在本地运行以进行Kubernetes测试或开发。
K3s是为生产环境设计的,因此在PC或笔记本电脑上,K3s是与生产级服务器最接近的选项。
本文的操作的环境采用k3s环境
3、pod介绍
Pod是kubernetes中你可以创建和部署的最小也是最简单位。一个Pod代表着集群中运行的一个进程。
Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubernetes中应用的一个实例,可能由一个或者多个容器组合在一起共享资源
创建pod的两种方式
a. kubectl命令方式
kubectl run springbootapp --image=xjk27400861/springbootapp:42 --replicas=3
备注:
--image 镜像名称及tag
--replicas指定副本数量
b. 文件方式
创建一个文件,springbootapp.yaml
执行创建命令构建pod
sudo kubectl create -f springbootapp.yaml
4、使用文件方式,构建pod
创建一个文件,springbootapp.yaml
文件内容
文件文本:
apiVersion: v1
kind: Pod
metadata:
name: springbootapp
labels:
app: springbootapp
spec:
containers:
- name: springbootapp
image: xjk27400861/springbootapp:42
ports:
- containerPort: 8080
备注:
image 指定镜像及tag
containerPort 指定容器释放端口
执行kubectl命令,构建pod
sudo kubectl create -f springbootapp.yaml
过一会,通过命令sudo kubectl get pods,可以查看到pod已创建成功
pod是运行在k8s内部,不能直接访问,我们需要再部署一个类似“反向代理”角色的Pod来帮我们访问应用。这个Pod是Service类型的
创建一个svc代理的yaml文件:springbootapp-svc.yaml,写入内容
输入命令,构建svc的pod
sudo kubectl create -f springbootapp-svc.yaml
or
sudo kubectl create -f springbootapp-svc.yaml -n springboot
我们可以通过命令,查看svc pod的状态
kubectl get svc -n springboot
-n 指定命名空间,不写默认default
在k3s任意节点,通过url可以看到app可以访问
进入pod命令,与docker命令类似:
sudo kubectl exec -it springbootapp bash
至此,我们完成了一个简单应用的部署,这是一个单体应用
参考资料url:
https://www.cnblogs.com/demingblog/p/12905569.html
https://blog.51cto.com/loong576/2420421
k8s学习笔记(1)- 简单部署springboot应用的更多相关文章
- K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群
0x00 概述 本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansi ...
- K8S学习笔记之Kubernetes 部署策略详解
0x00 概述 在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了. 选择正确的部署策略是要依赖于我们的业务需求的,下面我们 ...
- 【K8s学习笔记】K8s是如何部署应用的?
本文内容 本文致力于介绍K8s一些基础概念与串联部署应用的主体流程,使用Minikube实操 基础架构概念回顾 温故而知新,上一节[K8S学习笔记]初识K8S 及架构组件 我们学习了K8s的发展历史. ...
- OGG学习笔记04-OGG复制部署快速参考
OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- k8s学习笔记(2)- Rancher2.x部署springboot应用及高可用、扩容
前言:上一篇介绍基于k3s环境,使用kubectl部署springboot简单项目应用,本篇介绍基于rancher2.x部署应用程序 1.上篇已部署一个springboot应用,我们可以通过ranch ...
随机推荐
- 从零开始实现简单 RPC 框架 6:网络通信之 Netty
网络通信的开发,就涉及到一些开发框架:Java NIO.Netty.Mina 等等. 理论上来说,类似于序列化器,可以为其定义一套统一的接口,让不同类型的框架实现,事实上,Dubbo 就是这么干的. ...
- C++回调机制
一直对回调机制不是很了解,今天索性搜了很多资料顺便整理一下,进步一点点. 1.Callback方式(回调函数) 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数.如果你把函数的指针( ...
- noip模拟40
\(\color{white}{\mathbb{名之以:海棠}}\) 考场 \(t1\) 看见题意非常简单,觉得可能是个简单题 暴力算出几个小样例右端点右移的时候左端点都是单调右移的,以为具有单调性, ...
- Appium自动化(12) - 详解 HardwareActions 类里的方法和源码分析
如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 HardwareAction ...
- C#开源类库SimpleTCP
目录 简介 使用方法 实现客户端 实现服务端 总结 简介 工作中经常遇到需要实现TCP客户端或服务端的时候,如果每次都自己写会很麻烦且无聊,使用SuperSocket库又太大了.这时候就可以使用Sim ...
- openswan中out_sa()函数报文封装思想
out_sa()函数报文封装思想讲解 1. out_sa前言 我已经在上一篇文章中将in_struct函数的基本原理进行了阐述,而out_struct()的实现基本是相同的,如果能理解in_struc ...
- 手工添加数据到Chart
private void button1_Click(object sender, EventArgs e) { //清除Series chart1.Series.Clear(); Random ra ...
- API:获取当前用户的公网IP
在vue项目根目录下" public " 文件夹中的index.html,也就是根节点所在的文件引入JS,vue项目中静态文件需要在这里引入,用 script 标签规避跨域 < ...
- iframe 内容适用高度
HTML: <div class="content"> <iframe id="frameObj" src="链接" fr ...
- 比年轻更年轻,快看能否接棒B站?
撰文 |懂懂 编辑 | 秦言 来源:懂懂笔记 背靠超新Z世代,快看能否接棒B站? 国漫什么时候能追上日漫? 国漫作者真能挣到钱吗? 国漫什么时候才能走向世界? 这是中国漫画从业者的"灵魂三问 ...