随笔分类 - kubernetes
摘要:环境: kubernetes 1.11+/openshift3.11 自定义metric HPA原理: 首选需要注册一个apiservice(custom metrics API)。 当HPA请求metrics时,kube-aggregator(apiservice的controller)会将请求转
阅读全文
摘要:使用 "velero" 可以对集群进行备份和恢复,降低集群DR造成的影响。velero的基本原理就是将集群的数据备份到对象存储中,在恢复的时候将数据从对象存储中拉取下来。可以从 "官方文档" 查看可接收的对象存储,本地存储可以使用Minio。下面演示使用velero将openstack上的opens
阅读全文
摘要:关于thanos的介绍可以参考这篇官方博客的翻译文档,本文不作部署操作介绍。下图是thanos的官方架构图,主要有5个组件: Query:可以近似看作是Prometheus的实现,用于采集其他组件的数据,如sidecar和store gateway。Query的UI与Prometheus基本相同。
阅读全文
摘要:之前有做过使用单机版的consul实现Prometheus服务注册,以为使用集群版的consul只是将consul服务地址从节点IP变为了网关IP。但比较坑的就是,当使用consul注册一个service的时候,该service会存储在集群中的某个consul server上,删除该service时
阅读全文
摘要:client-go中有很多比较有意思的实现,如定时器,同步机制等,可以作为移植使用。下面就遇到的一些技术讲解,首先看第一个: sets.String(k8s.io/apimachinery/pkg/util/sets/string.go) 实现了对golang map的key的处理,如计算交集,并集
阅读全文
摘要:注:本次使用的client-go版本为:client-go 11.0,主要参考CSDN上的深入浅出kubernetes之client-go系列,建议看本文前先参考该文档。本文档为CSDN文档的深挖和补充。本文中的visio图可以从这里获取 下图为来自官方的Client-go架构图 图1. 下图也可以
阅读全文
摘要:首先区分下下面两个privileged的区别: 容器 privileged scc privileged 因为某些原因有些容器通常需要会以privileged权限运行,此时该容器拥有了node节点的root权限,可能会造成安全隐患。但大部分场景下容器其实并不需要这么大的权限(如仅使用节点挂载目录的容
阅读全文
摘要:openshift版本:openshift v3.6.173.0.5 使用oc(同kubectl)命令访问apiserver资源的时候,会使用到/root/.kube/config文件中使用的配置。 使用user访问apiserver oc命令使用config中定义的user和证书(公钥和私钥)访问
阅读全文
摘要:环境:openshift v3.6.173.0.5 openshift上devicemapper与官方文档中的描述略有不同,在官方文档的描述中,容器使用的lvm文件系统挂载在/var/lib/devicemapper下,因此可以在/var/lib/devicemapper/metadata中找到容器
阅读全文
摘要:openshift封装了k8s,在网络上结合ovs实现了多租户隔离,对外提供服务时报文需要经过ovs的tun0接口。下面就如何通过tun0访问pod(172.30.0.0/16)进行解析(下图来自理解OpenShift(3):网络之 SDN,删除了原图的IP) openshift版本如下: 首先在查
阅读全文
摘要:本需求来自于一道面试题😂(本环境使用centos 7) 最好使用阿里云ec2服务器安装minikube,若使用本地pc的vmware可能会出现网络方面的问题。 使用如下命令安装minikube,参见install minikube # curl -Lo minikube https://stora
阅读全文
摘要:服务端保留公钥和私钥,客户端使用root CA认证服务端的公钥。 kubernetes的证书类型主要分为3类: serving CA: 用于签署serving证书,该证书用于加密https通信。用于签署kubernetes API serving证书的CA也可以用于签署API server插件的se
阅读全文
摘要:node节点的iptables是由kube-proxy生成的,具体实现可以参见kube-proxy的代码 kube-proxy只修改了filter和nat表,它对iptables的链进行了扩充,自定义了KUBE-SERVICES,KUBE-NODEPORTS,KUBE-POSTROUTING,KUB
阅读全文
摘要:假设现在有一个ingress暴露的服务 example.com.cn,查看一下流量是怎么传输到后端的 使用kubectl get ingress可以查看到如下内容,example.com.cn对应的ingress IP为52.52.52.2,对外暴露端口为80和443,部署在kube-system命
阅读全文
摘要:Nginx 公司的 Michael Hausenblas 发布了一本关于 docker 和 kubernetes 中的容器网络的小册子。这份资料一共 72 页,是大家由浅入深的了解 Docker 和 Kubernetes 中的网络的很好的入门资料 转自:https://jimmysong.io/po
阅读全文
摘要:kubernetes的模板配置文件随着版本更迭也会有相应的调整,正确配置模板关键字的方式是参考版本发布的doc,如下图 在docs\api-reference下面有不同功能的API目录,如下图 各个API目录包含2个文件,第一个为定义模板关键字的文件,这个就是我们写模板可以参考的;第二个为操作命令文
阅读全文
摘要:本文章主要参考walkthrough,aggregation和auth。涉及custom metric API的注册认证以及API server aggregation的相关知识。walkthrough中主要实现了Prometheus adapter的功能,Prometheus adapter主要从
阅读全文
摘要:在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。 以kubectl为例介绍kubeconfig的配置。kubectl只是个go编写的可执行程序,只要为kubectl配置合适的kubeco
阅读全文
摘要:service 每个service对应一个cluster IP,cluster IP对应的服务网段最初是在配置kube-apiserver、kube-controller-manager和kube-proxy的systemd unit时指定的,如kube-apiserver参数为--service-
阅读全文
摘要:ETCD搭建 systemd启动etcd服务的时候出现错误:Failed at step CHDIR spawning /usr/bin/etcd: No such file or directory systemd启动etcd服务的时候出现错误:Failed at step CHDIR spawn
阅读全文