GPU Operator 使用
模式选择
手动部署
优点
没有系统版本限制,只要能搜到驱动,参考 [[#1.1.1 是否支持大部分 linux 系统]]
缺点
安装与后期维护复杂
gpu-operator
优点
新增节点自动安装驱动
方便驱动升级,只需要更新 helm 所有节点都可以升级
部署与维护简单
缺点
要求系统版本,参考[[#1.1.2 查看支持的系统]]
所有节点要求系统,内核统一
此文章使用gpu-operator,部署,并且支持离线环境,但需要容器镜像仓库与对应系统的 yum 源
一, 组件介绍
启动顺序
1. gpu-operator 管理以下所有资源,如果发现不会自动创建组件了,一般gpu-operator出问题了
2. GFD、NFD,二者都是用于发现 Node 上的信息,并以 label 形式添加到 k8s node 对象上,特别是 GFD 会添加nvidia.com/gpu.present=true 标签表示该节点有 GPU,只有携带该标签的节点才会安装后续组件。
3. 然后则是 Driver Installer、Container Toolkit Inst ...
atop 使用
机器经常oom 与夯死,但没有进程监控,找不到哪个用的资源比较多,觉得试试 atop,没想到完美解决问题
atop是一款用于监控Linux系统资源与进程的工具,能够报告所有进程的活动。其以一定的频率记录系统和进程活动,采集的数据包含CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中。对于每个进程,会显示CPU使用率、内存增长、磁盘使用率、优先级、用户名、状态和退出码等。当机器出现问题后,您可以获取相应的atop日志文件进行分析。本文介绍如何在Linux实例中安装、配置并使用atop监控工具。
1 安装atop
1.1 执行如下命令,安装atop。
yum 安装的 atop 版本是2.7的,日志分割失效,建议从官网下载 rpm 包安装
可以点击这里下载对应的 rpm 包,注意系统版本,我这里用的 rocky 8
还有个日志保存天数问题,默认加 2,注意下
1sudo yum install https://www.atoptool.nl/download/atop-2.10.0-1.el8.x86_64.rpm
2 配置并启动atop ...
Calico多集群通信
1 添加 ippool1.1 配置 ippool
以clusterA集群为例子,此操作也要在clusterB 执行
123456789101112131415161718192021222324252627# 在 clusterA 集群执行# 导出配置文件calicoctl get ippool default-ipv4-ippool -o yaml > clusterA-ippool.yaml# 修改配置文件vim clusterA-ippool.yamlapiVersion: projectcalico.org/v3items:- apiVersion: projectcalico.org/v3 kind: IPPool metadata: name: clusterA-ipv4-ippool 修改名称 spec: allowedUses: - Workload - Tunnel blockSize: 26 cidr: 192.168.0.0/16 disabled: true # 添加 ipipMode: CrossS ...
GitLab 单节点
更详细配置参考配置模版,此文档主要测试lfs与saml,并且使用这俩功能一定要开启https,并且证书可信
1 编写 docker-compose.yml1.1 lfs配置
LFS 的指针文件是一个文本文件,存储在 Git 仓库中,对应大文件的内容存储在 LFS 服务器里,而不是 Git 仓库中,专门用来解决git存储大文件问题不建议存放本地磁盘,建议上传到s3
1234567891011121314151617181920212223gitlab_rails['lfs_enabled'] = truegitlab_rails['object_store']['enabled'] = truegitlab_rails['object_store']['proxy_download'] = truegitlab_rails['object_store']['connection'] = { 'provider' ...
GitLab 压测
使用GPT工具对GitLab做性能与可用性测试
1 测试工具简介
GitLab Performance Tool(GPT)是由 GitLab 质量保证团队构建和维护的工具,可以对任何 GitLab 实例(包括 GitLab)进行性能和可用性测试。默认测试以下内容:
API 端点测试
Git 相关测试
web 网页测试
出于安全考虑,默认不测试 HTTP POST、PUT、DELETE 和 PATCH,如果确实需要测试,可以在测试命令后面加 --unsafe 标识;
2 准备测试环境
2.1 准备电脑和网络
- 尽可能的靠近目标 GitLab,以免受到网络环境的干扰;
- 测试过程需要从 https://gitlab.com下载测试工具和测试数据
2.2 初始化环境
123# 克隆 GPT 项目到本地电脑;git clone https://gitlab.com/gitlab-org/quality/performance.gitcd performance
2.3 准备测试环境
以 GitLab 管理员的身份创建个人访问 Token,scope 包含 API
...
国内 kubeadm 部署k8s集群
一、安装要求
本文主要在centos7系统上基于containerd和v3.24.5版本的calico组件部署v1.29.3版本的堆叠ETCD高可用k8s原生集群
操作系统CentOS7.x, 内核5.4.x
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
集群中的所有机器之间网络互通
可以访问外网 要拉取镜像
禁止swap分区
IP
Hostname
cri
10.1.1.1
10-1-1-1.k8s.host
docker
10.1.1.2
10-1-1-2.k8s.host
docker
10.1.1.3
10-1-1-3.k8s.host
containerd
10.1.1.4
10-1-1-4.k8s.host
containerd
172.1.0.0/16
podSubnet
172.0.0.0/16
serviceSubnet
二、系统初始化
1 配置hosts
123456cat >> /etc/hosts <<EOF10.1.1.1 10-1-1-1.k8s.h ...
ArgoCD快速入门
1 部署 ArgoCD
官方提供四种部署方式,分别是:
无高可用
集群权限 > 指定命名空间权限
默认只有 argocd 命名空间权限,增加别的命名空间权限参考:Applications in any namespace - Argo CD - Declarative GitOps CD for Kubernetes > 需要单独安装 crds
高可用
集群权限 > 指定命名空间权限
高可用配置参考
此文档后面补充了下,所以会出现图片对不上的情况,但不影响观看
1.1 argo 配置
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849# 这里用的高可用配置wget https://github.com/argoproj/argo-cd/blob/master/manifests/install.yamlvim install.yaml# 添加gitlab解析,避免访问不了gitlabspec:...... spec: ...
Kubernetes拓扑可视化监控之Scope
Weave Scope 特点Weave Scope 会读取集群配置,自动生成各容器、网络、以及 app 之间的映射关系,能够更加直观地展示、监视和控制基于容器化微服务的应用程序。
Weave Scope 可以监控 kubernetes 集群中的一系列资源的状态、资源使用情况、应用拓扑,还可以直接通过 Web 端进入容器内部进行调试。
其提供的主要功能包括:
交互式拓扑界面
图形模式和表格模式
多维度资源划分
过滤&搜索功能
实时了解集群中的容器状态
可以查看容器的上下文指标,标签和元数据。可以比较轻松的在容器内部的进程之间导航,以托管运行在可扩展、可排序表中的容器。对于给定的主机或服务,使用最多 CPU 或内存的容器即可轻松找到该容器。
与容器进行直接交互和管理、启动命令行。
通过插件扩展和自定义
缺点:
太费资源了,集群庞大不建议使用,建议用Kubernetes拓扑可视化监控之goldpinger
安装 scope安装参考
1 修改配置
如果集群没使用 weave cni,每个 args 后面添加–weave=false
12args: ...
Kubernetes拓扑可视化监控之Goldpinger
集群节点数量过多,经常会遇到某个节点访问出现问题,却不能及时发现,goldpinger就是为了解决此问题诞生的,与其他服务相比,goldpinger更加轻量
此文档通过argo cd管理goldpinger
尝试过Weave Scope,发现使用资源过多,参考Kubernetes拓扑可视化监控之Scope
参考文档: goldpinger
一, 部署
1 准备配置文件
如果使用argo需要存放到git上,参考 [[…/DevOps/ArgoCD#2 argocd-server 配置与使用|ArgoCD]]
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151 ...
HAProxy+Keepalived使用
一, 操作系统优化
注意升级内核,内核要 4.11 以上,不升级的话缺少ip_unprivileged_port_start文件
1234567891011121314cat << \EOF >> /etc/sysctl.confnet.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 0net.ipv4.ip_local_port_range="1024 65024"net.ipv4.tcp_max_syn_backlog=100000net.core.netdev_max_backlog=100000net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_fin_timeout = 10fs.file-max=500000EOFecho '* - nofile 500000' >> /etc/security/limits.conf# 开启 ip 转发echo 1 > /proc/sys/net/ipv4/ip_forward
...