随笔分类 -  kubernetes

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