草庐IT

k8s集群kubevirt创建虚拟机过程

1、CRD创建:在虚拟机创建之前,需要创建一个虚拟机定义,它描述了虚拟机的配置和规格。虚拟机定义可以使用Kubernetes的自定义资源(CustomResource)进行声明,一般以YAML或JSON格式指定。在虚拟机定义中,您需要指定VM的名称、镜像、资源要求(如CPU、内存、存储)、网络设置等。kubevirt以CRD的形式将VM管理接口接入到kubernetes中,通过一个pod去使用libvirtd管理VM的方式,实现pod与VM的一一对应,做到如同容器一般去管理虚拟机,并且做到与容器一样的资源管理、调度规划。2、虚拟机创建:创建VM对象,并同步创建DataVolume/PVC,从镜

【攻坚克难】详解k8s持久化存储数据pv、pvc存储问题

问题如图:pod中的容器,创建一个包含文件的目录,重启pod或系统重启后,此目录及其文件都会丢失,如何保证其不会丢失?图1创建包含文件的目录方法分析:用pv、pvc为k8s持久化存储数据是最好的选择,可解决上述问题。流程:pv→pvc→pod把创建的目录挂载到pvc上步骤编辑vimpv.yml文件创建pv,代码如下:apiVersion:v1kind:PersistentVolumemetadata:name:uncordonlabels:type:localspec:storageClassName:manualcapacity:storage:2GiaccessModes:-ReadWri

五分钟k8s入门到实战-应用配置

背景在前面三节中已经讲到如何将我们的应用部署到k8s集群并提供对外访问的能力,x现在可以满足基本的应用开发需求了。现在我们需要更进一步,使用k8s提供的一些其他对象来标准化我的应用开发。首先就是 ConfigMap,从它的名字也可以看出这是用于管理配置的对象。ConfigMap不管我们之前是做 Java、Go 还是 Python 开发都会使用到配置文件,而 ConfigMap 的作用可以将我们原本写在配置文件里的内容转存到 k8s 中,然后和我们的 Container 进行绑定。存储到环境变量绑定的第一种方式就是将配置直接写入到环境变量,这里我先定义一个 ConfigMap:apiVersio

k8s-部署到master节点【污点(Taint) 与 容忍度(Toleration)】总结

k8s-部署到master节点【污点(Taint)与容忍度(Toleration)】总结污点与容忍度污点(Taint)使节点能够排斥一类特定的Pod。作用于node容忍度(Toleration)是应用于Pod上的。容忍度允许调度器调度带有对应污点的Pod。容忍度允许调度但并不保证调度:作为其功能的一部分,调度器也会评估其他参数。污点和容忍度(Toleration)相互配合,可以用来避免Pod被分配到不合适的节点上。每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的Pod,是不会被该节点接受的。污点(Taint)配置污点主要是配置在节点node查看节点污点情况kubectlde

在K8S实现CICD

在K8S实现CICD我们要做什么?整体规划一安装k8s二在工具集群安装jenkins2.1创建jenkins.yaml文件2.2创建本地目录2.3部署jenkins-master2.4关于jenkins-slave储备知识2.5安装并配置k8s插件(用于动态创建slavepod)步骤1步骤2步骤3步骤4:手动创建一个PodTemplate步骤5:测试podTemplate三部署gitlab3.1在工具集群部署gitlab3.2添加解析3.3登录创建项目四开发机配置登录gitlab4.1为开发配置访问gitlab域名的解析4.2在开发机制作秘钥对4.3复制粘贴公钥到gitlab里4.4开发机器模

云原生周刊:K8s 的 13 个最佳开源监控工具

开源项目推荐SilverSurfer该项目旨在检查Kubernetes对象的API版本兼容性,并为其提供迁移路径,以便为集群升级做好准备。ActionsRunnerControllerActionsRunnerController(ARC)是一个Kubernetes操作器,可为GitHubActions编排和扩展自托管运行器。使用ARC,您可以创建运行程序规模集,该规模集可根据存储库、组织或企业中运行的工作流数量自动扩展。由于受控运行程序可能是短暂的并且基于容器,因此新的运行程序实例可以快速、干净地扩展或缩减。helm-mapkubeapis这是一个Helm插件,可将版本中废弃或移除的Kube

使用 Sealos 在离线环境中光速安装 K8s 集群

作者:尹珉。Sealos开源社区Ambassador,云原生爱好者。当容器化交付遇上离线环境在当今快节奏的软件交付环境中,容器化交付已经成为许多企业选择的首选技术手段。在可以访问公网的环境下,容器化交付不仅能够提高软件开发和交付的效率,还能够帮助企业实现快速迭代和持续交付。然而,在离线环境中,容器化交付面临着诸多挑战,包括软件包和镜像的准备困难、配置繁琐、部署时间长等。在本文中,我们将以运维的角度去探讨基于离线环境下使用容器化交付的痛点,提出一些解决方案以帮助企业在离线环境中实现高效的容器化交付。业务场景我司主要面向政企客户,所交付的产品必须是部署在内网中。作为运维负责人,一直苦恼于如何在客户

k8s如何优雅地关闭Pod

文章目录一、k8s删除Pod的过程`网络规则生效``删除pod`二、可能遇到的问题`502``504`三、如何避免上述问题`为容器内的进程设置正常关闭``添加preStopHook``修改终止GracePeriodSeconds`四、制作一个可以优雅关闭的镜像五、参考文章一、k8s删除Pod的过程在删除pod的过程中,有两条平行的时间线。一是改变网络规则的时间线,另一个是pod的删除。网络规则生效kube-apiserver接收到pod删除请求,将pod在Etcd中的状态更新为Terminating;EndpointController从Endpoint对象中删除pod的IP;kuber-pr

k8s集群部署harbor镜像仓库

目录一 安装部署     部署环境二安装docker, docker-compose三解压Harbor文件四配置HTTPS证书五配置HarborYML文件六运行安装程序脚本七测试命令登陆仓库 https://192.168.100.13 1,登录harbor2,然后重启docker.service重启Harbor  3,登录私有仓库4,创建k8s项目 5,推送命令参考页面八Harbor仓库里开始推送镜像给k8s1,镜像表示已经标记在项目 2,推送镜像到项目中查看结果3,将镜像推送至k8s集群里完成一 安装部署     部署环境安装Docker安装docker-compose下载harbor上传

K8S部署EFK(fluentd)收集日志

首先部署es和kinbanes部署创建es-svckind:ServiceapiVersion:v1metadata:name:elasticsearchnamespace:logginglabels:app:elasticsearchspec:selector:app:elasticsearchclusterIP:Noneports:-port:9200targetPort:9200name:rest-port:9300targetPort:9300name:inter-nodees-statefulset.yaml开启es跨域访问apiVersion:apps/v1kind:Statefu