k8s部署springboot应用
k8s部署springboot应用
k8s部署springboot应用
1.前置条件
已经搭建好kubernetes1.25.4集群
Kubernetes 1.25.4版本安装_V胡桃夹子的博客-CSDN博客
kubeasz安装kubernetes1.25.5_V胡桃夹子的博客-CSDN博客
本文介绍的springboot应用部署,自定义k8s namespacee,部署单节点。
从docker转到containerd,命令行工具ctr和crictl不怎么好用,或者说不怎么熟悉,所有产生nerdctl。
nerdctl是一个较新的containerd工具,兼容docker命令行工具,而且比ctr覆盖更全面,另外还支持docker-compose(不包括swarm)以及一些可选的高级特性。
从使用体验上来说,nerdctl和docker一致的。
安装nerdctl:
mkdir -p nerdctl
cd nerdctl
wget https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-1.0.0-linux-amd64.tar.gz
tar -xf nerdctl-1.0.0-linux-amd64.tar.gz
cp nerdctl /usr/local/bin/
查看k8s.io工作空间镜像:
nerdctl -n k8s.io image ls
导入本地镜像至k8s.io工作空间
前置条件,已经安装nerdctl
nerdctl load -i fast-testing.tar.gz --namespace k8s.io
2. 创建springboot部署yaml文件
注意,这里 docker.xxx.io/fast-testing
镜像已提前导入K8s工作空间。
创建springboot应用部署文件 fast-testing-k8s-deployment.yaml
cat > fast-testing-k8s-deployment.yaml<<EOF
---
# namespace
apiVersion: v1 # kubectl api-versions 可看版本信息
kind: Namespace # k8s资源类型,Namespace资源
metadata: # 必选,元数据
name: develop # 声明工作空间名称
labels: # 自定义标签列表
name: develop # 设置namespace的label标签
---
apiVersion: v1 # kubectl api-versions 可看版本信息
kind: Service # k8s资源类型,Namespace资源
metadata: # 必选,元数据
namespace: develop # Pod所属的命名空间,不指定则默认为"default"
name: fast-testing-app # 声明名称
labels: # 自定义标签列表
app: fast-testing-app # 标签名称
spec:
type: NodePort # 对外访问的类型
ports:
- port: 8888 # 即容器间服务调用的端口,这里的端口和clusterIP对应
protocol: TCP
nodePort: 8888 # 容器所在宿机端口,默认30000-32767之间,除非有改nodepord端口范围,外网IP映射就是将端口映射出去
targetPort: 8888 # 容器暴露的端口,即当前容器内应用的服务端口,例如Tomcat 8080
selector:
app: fast-testing-app # 选中上面的 Deployment
---
apiVersion: apps/v1 # kubectl api-versions 可看版本信息
kind: Deployment # 部署
metadata:
namespace: develop # Pod所属的命名空间,不指定则默认为"default"
name: fast-testing-app # 部署的pod名称
labels:
app: fast-testing-app # 标签
spec:
replicas: 1 # Pod 副本的期待数量
selector:
matchLabels:
app: fast-testing-app # 满足标签为这个的时候相关的pod才能被调度到
template:
metadata:
labels:
app: fast-testing-app # Pod副本拥有的标签,对应Selector
spec:
hostAliases: # 映射容器内的host地址
- ip: 10.6.1.166
hostnames:
- "redis"
- ip: 10.4.19.105
hostnames:
- "zookeeper"
containers: # 必选,Pod中容器列表
- name: fast-testing # 给容器取的名称
image: docker.xxx.io/fast-testing # 镜像地址
# Always:总是拉取;IfNotPresent:默认值,本地有则不拉取;Never:只用本地镜像,从不拉取;
imagePullPolicy: Never
EOF
3. 部署
一键部署命令:
kubectl apply -f fast-testing-k8s-deployment.yaml
一键回收命令:
kubectl delete -f fast-testing-k8s-deployment.yaml
4.引用Reference
CentOS8搭建nfs服务
Kubernetes 1.25.4版本安装
kubeasz安装kubernetes1.25.5
k8s一键安装redis单机版
k8s一键安装mysql8单机版
k8s部署springboot应用
Docker安装及学习
Docker制作springboot运行应用镜像
Docker制作Java8环境镜像
Docker安装Mysql5.7.31
Docker安装Mysql8.1.0
Elasticsearch单机版本安装
Elasticsearch集群安装
ELK安装
Docker安装ELK
zookeeper集群安装
Nginx日志切割
RabbitMQ集群安装
springboot集成prometheus+grafana
windows11安装android应用
更多推荐
所有评论(0)