草庐IT

Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)

目录涉及内容:一、CICD服务器环境搭建1、docker环境安装(1)、拉取镜像,启动并设置开机自启(2)、配置docker加速器2、安装并配置GitLab(1)、创建共享卷目录(2)、创建gitlab容器(3)、关闭容器修改配置文件(4)、修改完配置文件之后。直接启动容器(5)、相关的git命令(针对已存在的文件夹)3、安装配置远程镜像仓库harbor(1)、首先需要设置selinux、防火墙(2)、安装并启动docker并安装docker-compose,关于docker-compose,这里不用了解太多,一个轻量的docker编排工具(3)、解压harbor安装包:harbor-offl

云原生系列2-CICD持续集成部署-GitLab和Jenkins

1、CICD持续集成部署传统软件开发流程:1、项目经理分配模块开发任务给开发人员(项目经理-开发)2、每个模块单独开发完毕(开发),单元测试(测试)3、开发完毕后,集成部署到服务器(测试、运维)4、测试出现问题,提交bug,开发继续修复bug(开发)5、bug修改完毕,继续提交测试....问题:1、模块之间依赖负载,集成部署经常出问题2、测试人员经常在等待3、按时交付也会出问题思考:1、测试时间能否提前(开发一提交代码,问题就能直接暴露出来:自动化测试)2、人工集成部署(能否使用自动化工具部署构建)持续集成:简称CI思想:每天要多次将代码合并到主干,并进行集成,测试,这样就可以提早发现错误,进

持续集成部署-k8s-配置与存储-配置管理:HostPath 的使用

持续集成部署-k8s-配置与存储-配置管理:HostPath的使用1.简介2.创建一个Pod使用HostPath的方式挂载目录1.简介在Kubernetes中,HostPath是一种用于挂载宿主机上文件或目录到容器中的卷类型。使用HostPath卷类型,可以让你在容器内部访问宿主机上的文件或目录。具体来说,当你在Pod中定义了HostPath卷类型时,Kubernetes将会在宿主机上创建指定的目录,并将其挂载到容器中。这个目录的位置是由你自己指定的,通常是在宿主机上一个已经存在的目录或文件。在容器内部,你可以像访问普通的文件系统一样访问这个挂载的目录或文件。将节点上的文件或目录挂载到Pod上

持续集成部署-k8s-高级调度-污点和容忍

持续集成部署-k8s-高级调度-污点和容忍1.基本概念2.使用场景3.污点的基本操作1.添加污点2.查看污点3.删除污点4.污点的影响:5.配置容忍6.删除容忍7.测试添加污点4.容忍的配置1.基本概念在Kubernetes中,污点是一种属性,它可以被赋予Node(节点),用于标记该节点上的Pod应该避免调度的特定条件,例如特定的硬件限制、安全策略等。而容忍则是Pod的一个属性,它允许Pod在特定的污点条件下仍然被调度到对应的节点上。k8s集群中可能管理着非常庞大的服务器,这些服务器可能是各种各样不同类型的,比如机房、地理位置、配置等,有些是计算型节点,有些是存储型节点,此时我们希望能更好的将

持续集成部署-k8s-高级调度-InitC:初始化容器的概念和使用

持续集成部署-k8s-高级调度-InitC:初始化容器的概念和使用1.InitContainer(初始化容器)是什么?2.InitContainer的简单使用1.InitContainer(初始化容器)是什么?在Kubernetes中,InitContainer(初始化容器)是一种特殊类型的容器,它在Pod中的其他容器之前运行。InitContainer用于在主容器启动之前执行一些初始化任务,例如配置文件的下载、数据库的初始化等。InitContainer与普通容器一样,但它们具有以下几个特点:顺序执行:在同一个Pod中,所有的InitContainer会按照定义的顺序依次执行,只有当前Ini

持续集成部署-k8s-配置与存储-存储类:动态创建NFS-PV案例

动态创建NFS-PV案例1.前置条件2.StorageClass存储类的概念和使用3.RBAC配置4.storageClass配置5.创建应用,测试PVC的自动配置6.解决PVC为Pending状态问题7.单独测试自动创建PVC1.前置条件这里使用NFS存储的方式,来演示动态创建PV的案例。前置条件是需要在K8s集群中安装NFS的环境,安装可参考:持续集成部署-k8s-数据持久化-NFS安装与使用确保NFS服务器正常可用之后,接着后续的步骤操作。验证配置是否生效:在当前nfs-server上查看:[root@docker-54nfs]#showmount--exportExportlistfo

持续集成部署-k8s-配置与存储-配置管理:ConfigMap 的热更新

ConfigMap的热更新1.简介2.新建Pod3.使用edit命令编辑修改4.使用replace命令替换修改1.简介在Kubernetes中,ConfigMap是用于存储非敏感配置数据的API对象,它可以被挂载到Pod中作为文件或环境变量。ConfigMap的热更新指的是在不重启Pod的情况下,动态更新Pod中使用的配置数据。2.新建Pod首先创建一个configMap:配置文件如下:private-image-pull-pod.yaml[root@docker-54config]#catprivate-image-pull-pod.yamlapiVersion:v1

持续集成部署-k8s-服务发现-Service:Service、Endpoint、Pod之间的关系与原理

服务发现-Service:Service、Endpoint、Pod之间的关系与原理1.关系简介2.网络访问1.关系简介在Kubernetes中,Service是一种抽象的逻辑概念,用于将一组具有相同功能的Pod组合成一个逻辑服务。Service提供了一种稳定的IP地址和DNS域名,供客户端访问这个逻辑服务。同时,Service还提供了负载均衡、会话保持等功能,可以很方便地实现服务发现与调用。在Kubernetes中,Service和Endpoint是密切相关的两个概念。Endpoints就是一组具体的Pod的IP地址和端口信息,它是Service的一部分。当一个新的Service被创建时,Ku

ruby - 如何在 ruby​​ 中生成部分重复的排列?

我有一个数字范围R=(1..n)。我还有另一个字符'a'。我想生成长度为L(L>n+2)的字符串,所有数字都以相同的顺序排列,但要经过'a'的每次重复排列以填充长度L。例如,如果n=3,并且L=7,则一些有效字符串将是:"123aaaa","1a23aaa","1aa2a3a","aaaa123"而以下字符串将无效:"213aaaa",#invalid,because1,2,3arenotinorder"123a",#invalid,becauselength我目前正在这样做,效率太低了:n=3L=7all_terms=(1..n).to_a+Array.new(L-n,'a')all

别再把调用openai的text-davinci-003模型说成部署私有chatGPT了!

文章目录前言一、openai的APIkey无法调用chatGPT二、目前openai开放允许api调用的模型三、chatGPT是什么四、text-davinci-003模型也可以用总结前言随着chatGPT火爆了这么久,网上也有了很多私有化部署chatGPT、微信集成chatGPT类型的文章,但是就截止目前看来,很多人的方法都只是在用openai官方推出的text-davinci系列的模型,而不是调用chatGTP模型!一、openai的APIkey无法调用chatGPT验证这个结论很简单,官方其实在Help中明确说了“ItisnotavailableintheAPI”。所以说所有通过api调
12