【三】安装k8s+kuboard, 拉取harbor镜像并执行yml文件

自己的配置

我在尊云上两百多买了三台2c4g的服务器,其实买两台就够了。

  1. 修改服务网卡掩码 确保几台服务器内网之间可以ping通
    以尊云为例,vi /etc/sysconfig/network-scripts/ifcfg-eth1 修NETMASK值为255.0.0.0,重启服务器,尝试ping,确认内网已互通。

  2. 安装kuboard教程安装k8s和kuboard
    安装k8s:https://kuboard.cn/install/history-k8s/install-k8s-1.19.x.html,其中初始化master和worker时都填写购买的域名,没有就不改就行,ip改为master的内网ip
    安装kuboard:https://kuboard.cn/install/v3/install-in-k8s.html#方法一-使用-hostpath-提供持续化

  3. 在kuboard的配置中心配置harbor密文
    进入对应的命名空间内,点击配置中心,点击密文,点击创建secret,在弹出的表单中
    按要求输入,名字任取,docker serve以我的例子填写的是http://103.39.222.98:80/ 一定要带端口,username和password填自己登录harbor的。会出现一个复制指令,可以复制后去master中验证一下是否输出login success。

  4. 所有的节点,都要修改daemon.json并重启docker,否则拉取harbor镜像时会报一个https的错误
    vi /etc/docker/daemon.json
    添加 “insecure-registries”: [“103.39.222.98:80”], ip是私有镜像地址,端口80看harbor端口

  5. 让Jenkins可以通过ssh无密码登录master

    # 在安装Jenkins的服务器上,看是否.ssh目录,如果没有则创建,docker exec -it jenkins bash  cd ~ls -a# 创建命令如下mkdir .sshcd .sshssh-keygen   # 然后连续回车三次,就会得到id_rsa和id_rsa.pubcat id_rsa.pub  # 复制这个秘钥,然后切换到k8s的master服务器上, 看是否有.ssh/authorized_keys文件,没有就创建mkdir .sshcd .sshtouch authorized_keysvi authorized_keys

黏贴密钥后保存,不要黏贴多余的空格,在Jenkins的bash命令中输入 ssh root@ip fsddsffdsgs, 若提示无该命令则表示无密码登录成功。

配置jenkins+k8s

进入jenkins的系统管理的系统配置中,找到Publish over SSH
点击新增,填写如下内容
在这里插入图片描述
点击test会提示k8s文件夹不存在,去master节点中创建该目录。再测试就成功了。

创建k8s生成的pod、server的yml文件

我命名为pipeline.yml

apiVersion: apps/v1
kind: Deployment
metadata:namespace: testname: helloworld-deploymentlabels:app: helloworld-deployment
spec:replicas: 3selector:matchLabels:app: helloworldtemplate:metadata:labels:app: helloworldspec:containers:- name: helloworldimage: 103.39.222.98:80/repo/hello:v4.0.0imagePullPolicy: Alwaysports:- containerPort: 8000imagePullSecrets:- name: harbor-token
---
apiVersion: v1
kind: Service
metadata:namespace: testname: helloworld-deploymentlabels:app: helloworld-deployment
spec:selector:app: helloworldports:- port: 8000targetPort: 8000   # 这些端口要与dockerfile中配置的端口一致type: NodePort

进入jenkins流水线语法中选择

在这里插入图片描述
其他都空着就行,点击生成流水线脚本复制到jenkinfile中,到现在的文件内容为:

// 所有的脚本命令都放在当前的pipline中

pipeline{// 制定任务在哪个集群节点中执行agent any// 声明全局变量,方便后面使用environment {key = 'value'}stages {stage('拉取git仓库代码') {steps {checkout scmGit(branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: 'ee882b26-32f7-487f-af8b-8ce97ae6d923', url: 'https://gitee.com/feiminjie/helloworld.git']])}}stage('生成docker镜像') {steps {sh 'docker build -t hello:$tag .'}}stage('推送harbor') {steps {sh '''docker login -u admin -p Harbor12345 103.39.222.98:80
docker tag hello:$tag 103.39.222.98:80/repo/hello:$tag
docker push 103.39.222.98:80/repo/hello:$tag'''}}stage('推送yml到master') {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'pipeline.yml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}}
}

执行一下任务,进入master的/usr/local/k8s下查看文件是否推送过来。

执行yml文件

上面已经设置了无密码登录,所以直接进jenkins的流水线语法中,选择
在这里插入图片描述
复制黏贴到jenkinsfile中,最后的文件内容为:
// 所有的脚本命令都放在当前的pipline中

pipeline{// 制定任务在哪个集群节点中执行agent any// 声明全局变量,方便后面使用environment {key = 'value'}stages {stage('拉取git仓库代码') {steps {checkout scmGit(branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: 'ee882b26-32f7-487f-af8b-8ce97ae6d923', url: 'https://gitee.com/feiminjie/helloworld.git']])}}stage('生成docker镜像') {steps {sh 'docker build -t hello:$tag .'}}stage('推送harbor') {steps {sh '''docker login -u admin -p Harbor12345 103.39.222.98:80
docker tag hello:$tag 103.39.222.98:80/repo/hello:$tag
docker push 103.39.222.98:80/repo/hello:$tag'''}}stage('推送yml到master') {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'pipeline.yml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}stage('执行yml文件') {steps {sh '''ssh root@103.39.226.71 kubectl apply -f /usr/local/k8s/pipeline.yml
ssh root@103.39.226.71 kubectl rollout restart deployment helloworld-deployment -n test'''}}}
}

整个执行一下任务。可以去kuboard中查看pod和server是否启动。
jenkins结果:
在这里插入图片描述
kuboard结果:
在这里插入图片描述
对面的端口就是黄色31840

在浏览器输入 103.39.226.71:31840/api/v1,会输出helloworld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作

好啊 前面的文章 HarmonyOS 数据持久化 关系型数据库之 初始化操作 HarmonyOS 数据持久化 关系型数据库之 增删改逻辑编写 HarmonyOS 数据持久化 关系型数据库之 查询逻辑编写 我们分别编写了 初始化数据库表 增删查改操作 的逻辑代码 那么 下面我们就来整体操作一下 然后 这…

C# OpenCvSharp 图片批量改名

目录 效果 项目 代码 下载 C# OpenCvSharp 图片批量改名 效果 项目 代码 using NLog; using OpenCvSharp; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; namespace OpenCvSharp_Demo { publi…

微信小程序仿QQ头像轮播效果

1、效果图 2、效果流程分析 1、第1个头像大小从1到0缩小的同时,第2个头像左移 2、上面动画结束后,延迟50ms,第3个头像从0到1放大 3、把头像列表顺序前移一位,并重置轮播状态,以此达到一个循环。然后继续第一个步骤 …

Java旋转矩阵

题目: 给你一幅由 N N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵&…

wins10安装ffmpeg

官网下载 点击进入官网:ffmpeg,官网地址:https://ffmpeg.org/download.html 点击上图中Windows图标选中后下面显示的第一行进入如下界面,在release builds第一个绿框里面选择一个版本下载: 下载好之后解压后&#xf…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:PatternLock)

图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景。手指在PatternLock组件区域按下时开始进入输入状态,手指离开屏幕时结束输入状态完成密码输入。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容&#…

GO语言-切片底层探索(上)

目录 1.前言 2. 算法题目 错误代码 3. 错误分析 4.总结: 5.正确代码: 6.本地测试代码: 1.前言 今天在力扣上写算法,遇到了一个比较"奇怪"的错误。由于自己使用了递归切片,导致一开始没有看明白&…

力扣最热100题——56.合并区间

吾日三省吾身 还记得梦想吗 正在努力实现它吗 可以坚持下去吗 目录 吾日三省吾身 力扣题号:56. 合并区间 - 力扣(LeetCode) 题目描述 Java解法一:排序然后原地操作 具体代码如下 Java解法二:new一个list&#xf…

虚拟机中安装Win98

文章目录 一、下载Win98二、制作可启动光盘三、VMware中安装Win98四、Qemu中安装Win981. Qemu的安装2. 安装Win98 Win98是微软于1998年发布的16位与32位混合的操作系统,也是一代经典的操作系统,期间出现了不少经典的软件与游戏,还是值得怀念的…

安卓多个listView拖动数据交换位置和拖动

注意这里只是给出大概思路&#xff0c;具体可以参考修改自己想要的 public class MainActivity extends AppCompatActivity {private ListView listView1;private ListView listView2;private ArrayAdapter<String> adapter1;private ArrayAdapter<String> adapter…

研发效能DevOps: OpenEuler 部署 drone 持续集成平台

目录 一、实验 1.环境 2.OpenEuler 部署 drone 持续集成平台 二、问题 1.drone登录失败 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 192.168.204.145&#xff08;动态&#xff09; 192.168.204.141&…

jenkins容器中安装python遇到问题

在Jenkins容器中安装配置Python时遇到问题 执行./configure --prefix/opt/python3/时遇到configure: error: no acceptable C compiler found in $PATH 这个问题就是缺少gcc编译环境。将gcc安装上即可&#xff1a; yum install -y gcc##前提是容器里的系统是cenos才可以&#…

Excel下拉自动填充

1、选中需要下拉填充的单元格&#xff0c;按下Ctrl&#xff0c;然后再往下拖动填充。 下拉结果&#xff1a; 2、选中两个连续的单元格&#xff0c;往下拖动填充&#xff0c;可以填充增加两数差。 下拉结果&#xff1a; 本文为学习笔记&#xff0c;所参考文章均已附上链接&#…

设计模式前置了解uml图

在开发前&#xff0c;会进行系统的设计&#xff0c;而数据模型的设计大多通过 UML 类图实现。为了在 UML 类图中清晰地表达类之间的关系&#xff0c;需要对类之间的关系有一定的认识&#xff0c;并且了解相关的表达符号。 类之间的关系有以下几种&#xff1a; 组合 聚合 关联…

个人商城系统开源(配置支付宝支付!)

原文地址&#xff1a;个人商城系统开源&#xff08;配置支付宝支付&#xff01;&#xff09; - Pleasure的博客 下面是正文内容&#xff1a; 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源…

手机和电脑同步的好用记事本软件有哪些

我常常需要随手记录各种信息&#xff0c;以便随时查阅和使用。比如&#xff0c;在下班路上&#xff0c;我会用手机记录明天要处理的工作事项、购物清单&#xff0c;或是某个突然迸发的创意想法&#xff1b;而在办公室&#xff0c;我则需要在电脑上整理会议纪要、项目计划&#…

java学习(集合)

一.集合(主要是单列集合和双列集合) 1.集合的框架体系&#xff08;两大类&#xff09; 2.collection接口是实现类的特点&#xff1a; 1)collection实现子类可以存放多个元素&#xff0c;每个元素可以是Object 2)有效Collection的实现类&#xff0c;可以存放重复的元素&#…

案例分析篇04:数据库设计相关28个考点(1~8)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

基于Llama 2家族的提示词工程:Llama 2 Chat, Code Llama, Llama Guard

Prompt Engineering with Llama 2 本文是学习 https://www.deeplearning.ai/short-courses/prompt-engineering-with-llama-2/ 的学习笔记。 文章目录 Prompt Engineering with Llama 2What you’ll learn in this course [1] Overview of Llama Models[2] Getting Started wi…

华为配置ISP选路实现报文按运营商转发

Web举例&#xff1a;配置ISP选路实现报文按运营商转发 介绍通过配置ISP选路实现报文按运营商转发的配置举例。 组网需求 如图1所示&#xff0c;FW作为安全网关部署在网络出口&#xff0c;企业分别从ISP1和ISP2租用一条链路。 企业希望访问Server 1的报文从ISP1链路转发&#…