k8s部署springboot的demo项目

文章目录

    • 1 准备jar包
    • 2 构建docker镜像
        • 2.1 编写Dockerfile
        • 2.2 开始构建
        • 2.2 查看镜像
    • 3 部署 k8s
        • 3.1 编写deployment和service的yaml
        • 3.2 构建yaml
        • 3.3 测试设置的端口是否能访问
        • 3.4 删除构建
    • 4 推送镜像到harbor
        • 4.1 新建自己的项目
        • 4.2 在项目中标记镜像
        • 4.3 安装证书
          • 4.3.1 下载证书
          • 4.3.2 放在 /etc/pki/tls/certs/ 目录下
        • 4.4 推送镜像到当前项目
          • 4.4.1 登录harbor
          • 4.4.2 推送
    • 5 排雷
        • 5.1 报错1
        • 5.1 报错2
    • 6 资料网址

1 准备jar包

1.1 把你的springboot项目打包成可执行jar包

1.2 把jar包上传到Linux服务器

2 构建docker镜像

2.1 编写Dockerfile

vim Dockerfile

内容

FROM java:8
MAINTAINER luozhanfeng
ADD demo.jar /demo.jar
EXPOSE 80
ENTRYPOINT ["java","-jar","/demo.jar"]

2.2 开始构建

docker build -t luozhanfeng/demo:v1 .

k8s部署springboot的demo项目_第1张图片

2.2 查看镜像

docker images

avatar

3 部署 k8s

3.1 编写deployment和service的yaml

apiVersion: v1
kind: Service
metadata:
  name: demo
  namespace: default
  labels:
    app: demo
spec:
  type: NodePort #对外访问的类型
  ports:
    - port: 8030
      nodePort: 30090 #service对外开放端口
  selector:
    app: demo
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
  name: demo #名称
  labels:
    app: demo #标注 
spec:
  replicas: 3 #运行容器的副本数,修改这里可以快速修改分布式节点数量
  selector:
    matchLabels:
      app: demo
  template:
    metadata:
      labels:
        app: demo
    spec:
      containers: #docker容器的配置
        - name: demo
          image: luozhanfeng/demo:v1 #本地镜像
          #image: harbor.saas.xxx-ift.com/luozhanfeng/demo:v1 #远程仓库
          imagePullPolicy: IfNotPresent # Always:总是拉取; IfNotPresent:默认值,本地有则使用本地镜像, 不拉取; Never:只使用本地镜像,从不拉取
          ports:
            - containerPort: 8030 #容器对外开放端口

3.2 构建yaml

kubectl create -f demo.yaml
kubectl get pods

k8s部署springboot的demo项目_第2张图片

3.3 测试设置的端口是否能访问

curl 127.0.0.1:30333/test/test

k8s部署springboot的demo项目_第3张图片

image

k8s部署springboot的demo项目_第4张图片

3.4 删除构建

kubectl delete -f demo.yaml

image

4 推送镜像到harbor

4.1 新建自己的项目

我们的私有harbor地址:https://harbor.saas.xxx-ift.com/
账号密码是BIP

k8s部署springboot的demo项目_第5张图片

4.2 在项目中标记镜像

docker tag luozhanfeng/demo:v1 harbor.saas.xxx-ift.com/luozhanfeng/demo:v1

image

4.3 安装证书

4.3.1 下载证书

image

4.3.2 放在 /etc/pki/tls/certs/ 目录下
cd /etc/pki/tls/certs/
rz 

k8s部署springboot的demo项目_第6张图片

4.4 推送镜像到当前项目

4.4.1 登录harbor
docker login https://harbor.saas.xxx-ift.com
4.4.2 推送
docker push harbor.saas.xxx-ift.com/luozhanfeng/demo:v1

k8s部署springboot的demo项目_第7张图片

5 排雷

5.1 报错1

image

1、需要修改docker.service

vim /usr/lib/systemd/system/docker.service

EnvironmentFile=-/etc/sysconfig/docker
ExecStart=/usr/bin/dockerd $OPTIONS

k8s部署springboot的demo项目_第8张图片

2、修改/etc/docker/daemon.json

{
“insecure-registries”: [“http://192.168.19.4”]
}

k8s部署springboot的demo项目_第9张图片

然后重启docker即可

systemctl daemon-reload
systemctl restart docker.service

5.1 报错2

[root@test3 ~]# docker push 192.168.0.7/gitlab/gitlab_back:v1
The push refers to a repository [192.168.0.7/gitlab/gitlab_back]
Get https://192.168.0.7/v1/_ping: read tcp 192.168.0.6:40306->192.168.0.7:443: read: connection reset by peer

解决办法:
编辑vim /etc/sysconfig/docker文件。如果没有则创建。

image

6 资料网址

docker推送镜像到harbor
https://blog.51cto.com/lovejxs/2446037?source=dra

自签署ssl根证书 certificate signed by unknown authority
https://segmentfault.com/q/1010000000938076

docker push到私有仓库
https://www.cnblogs.com/jifeng/p/9410003.html

K8S部署SpringBoot应用
https://blog.csdn.net/m0_37063785/article/details/101303898

k8s使用本地镜像
https://blog.csdn.net/u010039418/article/details/86578420

你可能感兴趣的:(K8S,JAVA,docker,java,k8s)