k8s部署Java项目实战
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Mar
·
准备
事先准备好k8s集群,打包你的项目并上传到docker仓库
yaml文件
k8s的yaml文件可以自己手动写(不推荐),也可以通过kubectl create生成,这里不多说了,网上相关的文章多的是。。。下面是我的yaml文件。
test-deployment.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-k8s
namespace: default
labels:
cloud-service-module: test
app: test-k8s
spec:
replicas: 3
selector:
matchLabels:
cloud-service-module: test
app: test-k8s
template:
metadata:
labels:
app: test-k8s
cloud-service-module: test
spec:
restartPolicy: Always
containers:
- name: test-k8s
image: "test-k8s" # 这里填你自己项目的镜像地址
imagePullPolicy: "IfNotPresent"
envFrom:
- configMapRef:
name: test-k8s-configmap
ports:
- name: tomcat
containerPort: 8080
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
test-configmap.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: test-configmap
data:
# 我这里写的是项目所需要的环境变量
test_ip: 172.20.151.111
test_port: "5555" # 注意这里的value如果是数字需要加上双引号,否则会报错
test-service.yaml
apiVersion: v1
kind: Service
metadata:
name: test-service
namespace: default
labels:
cloud-service-module: test
cloud-service-type: java
cloud-service-category: backend
spec:
type: ClusterIP
ports:
- name: tomcat
port: 8080
targetPort: 8080
部署
登陆docker仓库
在你的k8s集群上需要先登录项目镜像所在的仓库,如果不执行该操作,创建pod的时候镜像会拉取失败!!
docker login --username=xxx [你的仓库地址]
看到下图就是登陆成功
注意,登录docker仓库可能会出现如下问题
Error response from daemon: Get https://xxx: dial tcp xxx:443: connect: connection refused
解决方案
vi /usr/lib/systemd/system/docker.service
#添加--insecure-registry=mysql.gift
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=mysql.gift
#执行命令
systemctl daemon-reload
systemctl restart docker
#查看是否成功
ps -ef|grep docker
[root@k8s-node1 ~]# ps -ef|grep docker
root 7730 1 0 09:26 ? 00:00:20 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=xxx
重新登录docker仓库问题解决
创建pod
分别执行命令:
kubectl apply -f test-service.yaml
kubectl apply -f test-configmap.yaml
kubectl apply -f test-deployment.yaml
最后通过kubectl get pod,svc
命令验证是否部署成功
至此,我们的Java项目就部署成功了!
参考文章:https://blog.csdn.net/java_w/article/details/103677896
更多推荐
已为社区贡献3条内容
所有评论(0)