k8s学习笔记(1)- kubectl简单部署springboot应用
2021-10-16 11:05
746 查看
前言: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
相关文章推荐
- springboot之热部署及Spring JPA简单应用
- 使用k8s部署springboot+redis简单应用
- 如何在Ubuntu 14.04服务器上自动化部署Spring Boot的应用
- Spring Boot简单应用——会员管理系统
- springboot中websocket的简单应用
- SpringBoot之在Servlet2.5容器中部署war应用
- 如何部署同一个Spring boot web 应用到不同的环境
- Spring Boot 应用的极速部署脚本(转)
- 还在手动部署SpringBoot应用?试试这个自动化插件
- 解决tomcat同时部署两个SpringBoot应用提示InstanceAlreadyExistsException
- springboot中websocket的简单应用
- 【SpringBoot] 简单部署和SpringBoot部分细节探究
- Spring boot(4)-应用打包部署
- Spring Boot简单应用——会员管理系统
- 解决tomcat同时部署两个SpringBoot应用提示InstanceAlreadyExistsException
- SpringBoot之在Weblogic中部署war应用
- docker 内部署 springboot 应用
- centos7.5 下docker部署springboot应用
- Jenkins Pipeline 部署 SpringBoot 应用
- spring boot+netty开发简单IM应用(一)