Zlatan Eevee
Jack of all trades and master of none.
-
kubernetes笔记: Ceph RBD
背景 ceph集群 node上准备ceph RBD用作volume RBD用作PV/PVC RBD用作storage class 总结 背景 为什么k8s需要RBD呢?以前用到的volume,有 configmap 、empty dir、hostpath,configmap通常是用来向容器注入配置的,而empty dir、hostpath 也能够用来存储数据,但他们都有一个致命的问题:如果容器被删除了,数据也就跟着丢失了。这对一些无状态应用来说没什么,因为他们的数据...
-
kubernetes笔记: LimitRanges
前面我们介绍了kubernetes的resourceQuota,现在再来介绍下limitRanges。 Resource Quota区分的粒度是namespace,其目的是为了不同namespace之间的公平,防止某些流氓team占用了太多的资源。而limitRange区分的粒度则是container,则是在为了在同一个namespace下,限制container的最大最小值。另外, 在设置了resourceQuota的namespace下,如果用户创建Pod时没有指定limit/request,...
-
kubernetes笔记: Resource Quotas
在一个多用户、多团队的k8s集群上,通常会遇到一个问题,如何在不同团队之间取得资源的公平,即,不会因为某个流氓团队占据了所有资源,从而导致其他团队无法使用k8s。 k8s的解决方法是,通过RBAC将不同团队(or 项目)限制在不同的namespace下,通过resourceQuota来限制该namespace能够使用的资源。资源分为以下三种。 计算资源配额:cpu,memory 存储资源配置:requests.storage(真~总量),pvc,某storage class下的限制(例...
-
kubernetes笔记: ingress
What is Ingress? ingress types single service ingress Simple fanout Name based virtual hosting Multiple ingress controllers What is Ingress? internet | ------------ [ Services ] service通常只是在集群内部有...
-
kubernetes笔记: RBAC鉴权
RBAC API 概览 Role and ClusterRole RoleBinding and ClusterRoleBinding Referring to Resources Aggregated ClusterRoles Referring to Subjects Default Roles and Role Bindings Auto-reconciliation u...
-
kubernetes笔记: subpath
k8s允许我们将不同类型的volume挂载到容器的特定目录下。例如,我们可以将configmap的数据以volume的形式挂到容器下。 定义一个configmap,其中的数据以 key:value 的格式体现。 apiVersion: v1 kind: ConfigMap metadata: name: special-config namespace: default data: special.level: very special.type: |- property...
-
kubernetes笔记: HostAliases
k8s上不同服务之间可以通过service的域名来互相访问。域名的解析是一般是通过在集群中的kube-dns(主要是dnsmasq)或者coredns完成的。k8s的dns也可以向上级联dns服务器。 有的时候,我们希望给运行在k8s上的Pod增加一些域名的解析(例如宿主机的主机名),但又不想对dns模块动太多,有没有什么比较方便的办法呢? 容易想到的是,将域名记录到容器镜像的/etc/hosts文件,这样容器运行时就可以正确解析了。 然而这样是不行的。k8s会管理这个文件,打到镜像里的文件实...
-
kubernetes笔记: downward API
Store Pod fields Store Container fields 能力 ### k8s新增了一个叫做downward API的概念。 其目的是,容器可以知道一些自己的信息,但又不需要跟k8s过度耦合(也就是不希望在容器中调用k8s的api)。 有两种方式可以将Pod和Container的信息暴漏给运行中的容器。 Environment variables DownwardAPIVolumeFiles 这俩货,就叫做 downward API。可能是...
-
使用swaggo自动生成Restful API文档
安装swag命令行 获取gin专用的gin-swagger 编写gin-swagger需要的注释 整体应用的说明 具体api的说明 swag init Java使用Spring Boot写Restful API时,可以在代码里用注解来标识API,编译为Jar包后,运行时Web应用可以直接托管API文档。具体的可以参考这篇文章:使用swagger来做API文档。 那么golang系有没有类似的做法呢? 有是有的,只是没有s...
-
OpenVswitch设计与实现
Abstract 1 Introduction 2 设计约束和基本原理 3 设计 3.1 概览 3.2 包分类 3.3 3.3 使用OpenFlow作为编程模型 4 流缓存设计(Flow Cache Design) 4.1 Microflow Caching 4.2 Megaflow Caching 5 缓存敏感的包分类器(Caching-aware Packet Cl...