1. jenkins配置部署,从git或者svn等拉取代码,编制打包,在博客的jenkins那块有具体的讲解

2. 将打好的包war/java包拷贝到k8s-Master,或者在jenkins上也行,我这里测试为了方便直接在k8s上面执行

3. 在k8s-node和k8s-master上配置好私有仓库镜像拉取
vim /usr/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.0.105
systemctl daemon-reload && systemctl restart docker 4. 在k8s-master编写Dockerfile,jenkins执行的脚本及yaml文件
mkdir /root/tomcat
vim Dockerfile
FROM tomcat #基础镜像 MAINTAINER Mlxg #作者 RUN mkdir /usr/local/tomcat/webapps/test #创建容器test目录 ADD test.txt /usr/local/tomcat/webapps/test #test.txt放到test目录
   #jar/war包直接ADD到webapps下启动tomcat即可
ADD server.xml /usr/local/tomcat/conf #替换容器server.xml EXPOSE 18080 #容器tomcat端口 ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"] #启动tomcat jenkins脚本
#!/bin/bash
docker build -t tomcat:v1.0 . #生成镜像
docker tag tomcat:v1.0 192.168.0.105/test/tomcat:v1.0 #打tag
docker login --username=admin --password='admin' 192.168.0.105 #登录私有仓库
docker push 192.168.0.105/test/tomcat:v1.0 #上传镜像
5. 配置无需手动登录docker私有仓库
docker login 192.168.0.105输入用户及密码
登录之后在~/.docker/config.json文件
再对上面的config.json进行base64加密,命令如下:
cat ~/.docker/config.json |base64 -w 0
创建secret.yaml文件,文件内容如下:
apiVersion: v1
kind: Secret
metadata:
name: mysecret
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJodWIueXh0Yy5jb206ODA4MSI6IHsKCQkJImF1dGgiOiAiWTNJM09saDFNVEl6TkRVMk1qVT0iCgkJfQoJfQp9Cg== #base64加密密码
type: kubernetes.io/dockerconfigjson 创建secret,命令如下:
    kubectl create -f secret.yaml,生成secret
我试了一下无法拉取,还没未找到问题,可能是我之前搞错了之后,生成了一个错误的
手动创建一个secret,使用 secret 来指定 pull 权限
kubectl create secret docker-registry registry-harbor \
--namespace=default --docker-server=192.168.0.105 \
--docker-username=admin --docker-password='admin'
kubectl get secrets 6. 编写yaml文件及svc文件
test-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: test
spec:
replicas: 2
selector:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: 192.168.0.105/test/tomcat:v1.0 #私有仓库镜像
ports:
- containerPort: 18080
imagePullSecrets:
- name: registry-harbor #创建secret定义的仓库名称 test-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: test
spec:
type: NodePort
ports:
- port: 18080  #容器暴露端口
nodePort: 31002 #映射node服务器提供外部访问端口
selector:
app: test
8.  执行部署web及services
kubectl create -f test-rc.yaml
kubectl get pods #可查看pod进度
kubectl describe pod test-s5c48 #查看pod信息及报错
kubectl delete -f test-rc.yaml #删除pods kubectl create -f test-svc.yaml
kubectl get svc
kubectl delete -f test-svc.yaml
   docker ps | grep tomcat #在node上查看容器是否正常运行

  

9. jenkins配置
配置源码及执行的shell

10. k8s上编写Docfile,build,yanl文件
在jenkins上ADD zip/jar包是报错没有这个文件,暂未找到什么问题
此处scp到k8s-master上执行打包镜像上传私有仓库
vim Dockerfile
FROM docker.io/centos MAINTAINER Mlxg RUN yum install -y unzip RUN mkdir /opt/server ADD letouactivity-provider-1.0.0-SNAPSHOT-bin.zip /opt/server RUN unzip /opt/server/letouactivity-provider-1.0.0-SNAPSHOT-bin.zip -d /opt/server EXPOSE 28080 ENTRYPOINT ["/opt/server/bin/start.sh","run"] vim letou.sh #tag可通过变量获取,为了测试方便
#!/bin/bash
docker build -t letou:v1.0 .
docker tag letou:v1.0 192.168.0.105/test/letou:v1.0
docker login --username=Mlxg --password='Mlxg2234' 192.168.0.105
docker push 192.168.0.105/test/letou:v1.0 vim letou-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: letou
spec:
replicas: 2
selector:
app: letou
template:
metadata:
labels:
app: letou
spec:
containers:
- name: letou
image: 192.168.0.105/test/letou:v1.0
ports:
- containerPort: 28080
imagePullSecrets:
- name: registry-harbor vim letou-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: letou
spec:
type: NodePort
ports:
- port: 28080
nodePort: 30332
selector:
app: letou

11. 在k8s-master执行查看是否部署成功
因为我们的代码需要连接duboo,zk,apollo(可部署在宿主机),此时node上的容器其实访问不了
只要能成功查看letou pod就发布成功了

  

jenkins+k8s部署的更多相关文章

  1. Jenkins+Git+Docker+K8s部署

    准备工作 Jenkins已安装 Docker和K8s部署运行成功 代码管理工具使用Git 最近公司项目使用Jenkins+Git+Docker+K8s进行持续化构建部署,这里笔者整理了一下构建部署的相 ...

  2. jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(1)

    前言:前面写过2篇文章,介绍jenkins通过slave节点部署构建并发布应用到虚拟机中,本篇介绍k8s(k3s)环境下,部署jenkins,通过流水线脚本方式构建发布应用到k8s(k3s)集群环境中 ...

  3. jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(2)

    前言:上篇已介绍了jenkins在k3s环境部署,本篇继续上篇讲述流水线构建部署流程 1.从gitlab上拉取代码步骤 在jenkins中,新建一个凭证:Manage Jenkins -> Ma ...

  4. 微服务从代码到k8s部署应有尽有大结局(k8s部署)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  5. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

  6. 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建

    使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 目录 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 使用jenkins自动 ...

  7. Jenkins动态部署方案

    在之前一个项目开发中使用到了jenkins自动化测试,根据实际应用,简单整理了其部署方案. 1.部署 2.项目构建 3.重部署 1 部署 登录Jenkins应用管理界面 1)选中一个服务器上已在jen ...

  8. Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  9. 使用Jenkins自动部署博客

    title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...

随机推荐

  1. 关闭Mac的Microsoft AutoUpdate

    最近使用Office 发现AutoUpdate一直会启动.我也不需要里面的更新.每次还要把它推出. 网上看到有两种方法,一种是暴力删除,另一种是通过权限限制. 暴力可不是我喜欢的方式,所以选择后者. ...

  2. Springboot之Actuator的渗透测试和漏洞利用

    背景概述 Spring的生态很优秀,而使用Spring Boot的开发者也比较多. Actuator是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动 ...

  3. codeforces标签设置【codeforces内操作, 非浏览器操作】

    直接干货~ 明确需求,关闭标签 步骤: 1.选中上方PROBLEM SET 2.找到Settings  第一个选项是展示未accepted的标签, 第二个选项是隐藏已accepted的标签 官方标签设 ...

  4. SIP信令跟踪工具HOMER

    概述 HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具. HOMER是一款强大的.运营商级.可扩展的数据包和事件捕获系统,是基于HEP/EEP协议的VoIP/RTC监控应 ...

  5. Python标准库tempfile的使用总结

    Python标准库tempfile的使用总结 临时文件是计算机程序存储临时数据的文件,它的扩展名通常是".temp".本文用于记录使用Python提供的临时文件API解决实际问题的 ...

  6. ViewFlipper 简单应用

    AdvserView.java package com.earen.viewflipper; import android.content.Context; import android.graphi ...

  7. 【架构视角】一篇文章带你彻底吃透Spring

    框架的意义 对于程序员来说,我们通常知道很多概念,例如组件.模块.系统.框架.架构等,而本文我们重点说 框架. 框架,本质上是一些实用经验集合.即是前辈们在实际开发过程中积攒下来的实战经验,累积成一套 ...

  8. 开源框架 WebFirst 一键生成项目,在线建表

    1.WebFirst框架描述 WebFirst  是果糖大数据团队开发的新一代 高性能 代码生成器&数据库设计工具,由.net core 3.1 + sqlsugar 开发 导入1000个表只 ...

  9. 『现学现忘』Git基础 — 24、Git中查看历史版本记录

    目录 1.查看详细的历史版本记录 2.简化显示历史版本记录 3.历史版本记录常用操作 (1)指定查看最近几次提交的内容 (2)以简单图形的方式查看分支版本历史 (3)翻页与退出 4.查看分支相关的版本 ...

  10. 过早的给方法中 引用对象 设为 null 可被 GC提前回收吗?

    经常在代码中看到有人将 null 赋值给引用类型,来达到让 GC 提前回收的目的,这样做真的有用吗?今天我们就来研究一下. 为了方便讲解,来一段测试代码,提前将 test1=null ,然后调用 GC ...