博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kubernates之部署springboot
阅读量:6602 次
发布时间:2019-06-24

本文共 3621 字,大约阅读时间需要 12 分钟。

hot3.png

    最近开始接触kubernates,在上面部署了下springboot,记录下。

1、创建一个Springboot应用

    List-1.1

import org.springframework.web.bind.annotation.RequestMapping;    import org.springframework.web.bind.annotation.RestController;        @RestController    public class HelloController {            @RequestMapping(value = "/")        public String hello(){            System.out.println("hello方法");            return "Hello, k8s!";        }    }

    之后mvn clean package,打包,得到app.jar,和Dockerfile放在同一个目录下

    List-1.2

mjduan@mjduan-ubuntu:/opt/software/docker/springboot-k8s$ ll    total 676796    drwxr-xr-x 2 mjduan mjduan      4096 2月  15 15:43 ./    drwxr-xr-x 4 mjduan mjduan      4096 2月  15 15:30 ../    -rw-r--r-- 1 mjduan mjduan  16674428 2月  15 15:31 app.jar    -rw-r--r-- 1 mjduan mjduan       362 2月  15 15:37 Dockerfile

2、制作镜像

 Dockerfile的内容为

    List-2.1

FROM openjdk:8        ADD app.jar /opt/app/app.jar    RUN bash -c 'touch /opt/app/app.jar'        # 开放8080端口    EXPOSE 8080        ENV TZ=Asia/Shanghai    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone        # 配置容器启动后执行的命令    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/opt/app/app.jar"]

之后执行命令来得到镜像

    List-2.2

mjduan@mjduan-ubuntu:/opt/software/docker/springboot-k8s$ docker build -t hello:1.0 .

3、将该镜像放到所有的节点上

    之后将这个镜像放到k8s的master和俩个node上,这里我是先用

docker save hello:1.0>hello.tar

    命令得到文件hello.tar,之后将hello.tar用scp命令传到k8s的master和俩个node上。

    之后在k8s的master和俩个node上,执行如下命令得到镜像hello:1.0

docker load -i hello.tar

4、kubernates上部署

    好了,上述步骤完成后,在k8s的master上创建yaml文件

[root@localhost mjduan]# vi /data/mjduan/hello.yaml

    hello.yaml的内容如下

apiVersion: apps/v1beta2    kind: Deployment    metadata:      name: example-demo3      labels:        app: example-demo3    spec:      replicas: 1      revisionHistoryLimit: 10      selector:        matchLabels:          app: example-demo3      template:        metadata:          labels:            app: example-demo3        spec:          containers:          - name: example-demo3            #image名称是我们的hello:1.0            image: hello:1.0            ports:            - containerPort: 8080              protocol: TCP            livenessProbe:              httpGet:                path: /                port: 8080              initialDelaySeconds: 30              timeoutSeconds: 30            imagePullPolicy: Never          # Comment the following tolerations if Dashboard must not be deployed on master          tolerations:          - key: node-role.kubernetes.io/master            effect: NoSchedule    ---    apiVersion: v1    kind: Service    metadata:      name: example-demo3      labels:        app: example-demo3    spec:      ports:        - port: 8080          targetPort: 8080      selector:        app: example-demo3      type: NodePort

    部署Docker image,命令如下

[root@localhost mjduan]# kubectl create -f hello.yaml     deployment.apps/example-demo3 created    service/example-demo3 created

    查看pod信息,如下

[root@localhost mjduan]# kubectl get pods    NAME                             READY     STATUS              RESTARTS   AGE    example-demo3-746fc684df-h4dpq   1/1       Running             0          10s

    查看service,如下,NAME为example-demo3的那个就是我们刚刚部署的,端口映射是宿主机的32300对应到容器的8080

[root@localhost mjduan]# kubectl get services    NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE    example-demo3   NodePort    10.107.189.127   
8080:32300/TCP 1m kubernetes ClusterIP 10.96.0.1
443/TCP 2h

    访问服务

[root@localhost mjduan]# curl http://k8s.master:32300    Hello, k8s!

 

转载于:https://my.oschina.net/u/2518341/blog/3010693

你可能感兴趣的文章
ios 实现在一个APP中调起另一个APP(demo)
查看>>
区块链开发公司普及区块链技术的基础知识
查看>>
美拍新M计划上线,全面扶持内容生产者生态
查看>>
为Gradle设置镜像,解决jcenter依赖无法下载或者下载过慢问题
查看>>
pyhton list和str比较
查看>>
Node.js中spawn与exec的异同比较
查看>>
MySQL定时备份数据库(全库备份)
查看>>
图形数据库公司 Neo4j 获得 E 轮 8000 万美元融资
查看>>
MariaDB CEO 痛斥云厂商对开源的无尽掠夺,从不回馈社区
查看>>
修改yarn监控web页面上展示的StartFime和FinishTime【GMT时间】
查看>>
用Python完成Excel的常用操作
查看>>
Google在线深度学习神器Colab
查看>>
欧盟百万欧元悬赏开源软件漏洞惹争议,被评本末倒置
查看>>
微软职位内部推荐-Software Development Engineer
查看>>
慧安金科完成1亿元A轮融资,创新工场领投
查看>>
Auto Scaling控制台新变化:创建多可用区的伸缩组
查看>>
Spring Cloud的核心特性
查看>>
网站的伸缩性架构
查看>>
编程艺术是,而且一直以来都是 —— 语言设计艺术。
查看>>
python网络编程基础
查看>>