k8s部署springboot应用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
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. k8s相关学习
Kubernetes 1.25.4版本安装_V胡桃夹子的CSDN博客
kubeasz安装kubernetes1.25.5_V胡桃夹子的CSDN博客
CentOS8搭建nfs服务_V胡桃夹子的CSDN博客
k8s一键安装redis单机版_V胡桃夹子的CSDN博客
k8s一键安装mysql8单机版_V胡桃夹子的CSDN博客
Docker制作springboot运行应用镜像_V胡桃夹子的CSDN博客