ZWEI

Time flies.

traefik简介

traefik 与 nginx 一样,是一款反向代理工具,或者叫Edge路由器。

  1. 自动的服务发现与负载均衡
  2. 兼容主要的集群技术,如Kubernetes、Docker等
  3. 无须维护和同步单独的配置文件,更多时间用在系统开发和部署上,而不是编写配置和维护配置
  4. 所有配置自动实时生效,无须重启
阅读全文 »

前提条件

etcd 版本: v3.4.6

服务启动入口

etcd\etcdmain\main.go

阅读全文 »

背景

Eni多IP方案是由 VPC 功能负责路由,打通容器网络的连通性,可实现 Pod 和 Node 的控制面和数据面完全在同一网络层面,该模式下的 Pod 能够复用VPC 所有产品特性。

VPC-CNI(多IP共享) 模式和VPC-CNI(独占)模式下,集群内 Pod 与 Node 的 IP 均来自同一 VPC。区别是,独占模式指的是pod独享一块弹性网卡,而多IP共享模式指的是多个pod共享一块弹性网卡,将弹性网卡的辅助ip分配给pod,通过这种方式,增加单个Node上可以创建的pod数量。

注:但由于弹性网卡辅助 IP 数量的限制,单个 Node 上可以创建的 Pod 数量仍然会受到限制,但综合pod数量和性能的考虑,目前该方案已属较优。

ENI多IP方案支持的最大Pod数=(云主机支持的ENI数-1)×单个ENI支持的私有IP个数

阅读全文 »

被 Cloudflare 保护的站点,在初次访问时,会等待 5 秒钟的验证,检测你是不是通过浏览器正常访问的,如下图:
0
爬虫如何绕过 Cloudflare 的 DDos 保护验证

本文主要说明如果通过技术手段绕过这个验证,我试了两种办法,都管用。

阅读全文 »

默认情况下,当 Docker daemon 退出的时候, 会关闭正在运行的容器。从 1.12 开始,可以配置 daemon 参数,使容器在 daemon 进程不可用的时候已经保持运行。改参数降低了在 daemon 崩溃、计划性维护以及升级时容器的停止时间。

阅读全文 »

主要两个思路:

  1. 将GPU纳入cgroup管理,目前尚未有成熟的提案,短期内难以实现(阿里云估计是基于cgroup实现的);
  2. 基于GPU驱动封装实现,用户根据需要对驱动的某些关键接口(如显存分配、cuda thread创建等)进行封装劫持,在劫持过程中限制用户进程对计算资源的使用。

此类方案缺点是兼容性依赖于厂商驱动,但是整体方案较为轻量化,性能损耗极小(腾讯云的gpu-manager采用了该方案,据了解浪潮也是采用的这个方案)。
下面,基于对gpu-manager的源码和论文进行研究,讲述“劫持”方案的实现原理。

阅读全文 »

背景

在kubernetes中运行GPU程序,通常都是将一个GPU卡分配给一个容器。这可以实现比较好的隔离性,确保使用GPU的应用不会被其他应用影响;对于深度学习模型训练的场景非常适合;

但是如果对于模型开发和模型预测的场景就会比较浪费。所以很多用户的诉求是能够让更多的预测服务共享同一个GPU卡上,进而提高集群中Nvidia GPU的利用率。

而这就需要提供GPU资源的划分,而这里GPU资源划分的维度指的就是GPU显存和Cuda Kernel线程的划分。

目前,阿里云、腾讯云、华为都开始支持针对容器的GPU虚拟化。以下分别对这三家进行介绍

阅读全文 »

前言

近几年,随着云计算、机器学习、人工智能、高性能计算、区块链等的兴起,GPU以其在浮点运算与并行运算性能方面的出色表现有了海量的市场需求。GPU早已经不再只是显示卡,而是成为了CPU 之外更大的计算模块。如今,GPU对企业的发展越来越重要。但是,相较于CPU,GPU价格昂贵。所以,如何提高GPU的使用率,对于客户来讲就非常重要。而GPU虚拟化正是能够帮助客户合理分配和使用GPU资源的关键技术。

从用户角度,GPU虚拟化分为虚拟机层面的虚拟化和容器层面的虚拟化。本方案中只针对后者展开讲述。目前,在实现方面主要有两个思路,一个是内核驱动,将GPU纳入cgroup管理,比如阿里云的cGPU方案;二是采用类rCuda方案,将GPU驱动封装劫持,从而限制用户进程对资源的使用。考虑到第二种方案的轻量性,本文的vGPU方案即采用了它。

阅读全文 »

简介

Custom HPA 是Kubernetes中Pod水平自动伸缩的一种,不同于标准的HPA基于Pod的CPU使用率和内存使用量来控制工作负载中的副本数量,Custom HPA支持以自定义监控指标来实现对工作负载中副本数的控制

阅读全文 »

HPA 概念

HPA(Horizontal Pod Autoscaling)是kubernetes中自动水平扩展模块,基于用户设定和获取到的指标(CPU,Memory,自定义metrics),对Pod进行伸缩,不是直接操作pod,而是通过scaler client修改Replicas副本数来实现Pod实例数的增减。HPA Controller属于Controller Manager的一个controller。HPA的操作对象是RC、RS或Deployment对应的Pod根据观察到的CPU等实际使用量与用户的期望值进行比对,做出是否需要增减实例数量的决策

阅读全文 »
0%