本文中,笔者主要结合自己使用flannel心得,以及flannel的技术演进,介绍下flannel网络实现方案。在没有介绍flannel overlay网络实现方案之前,先回顾下docker网络实现方案。
★ docker网络模式有哪些?
bridge、host、none 新版本docker出现了macvlan、overlay跨主机网络通信方案。
★ 桥接模式是如何实现的呢?
首先docker在默认安装情况下,启动之后会默认建立docker0 linux网桥设备、该网桥设备拥有一个私有网络地址以及子网,通常使用子网中第一个没有被占用的地址。比如:172.16.0.1;
然后d...
相信很多人都会经常部署不同的 Kubernetes 集群,也会经常删除不再使用的 Kubernetes 集群,如果要在本地通过 kubectl 客户端与集群进行交互,就需要不同的 kubeconfig,然后通过环境变量或命令行参数不断来回切换 kubeconfig,或者手动将多个 kubeconfig 合并为一个,然后通过 kubectl 插件 kubectx[1] 或 kubie 来切换上下文环境(即 context)。
那么有没有一种方法可以自动将多个 kubeconfig 文件合并成一个呢?手动合并也太麻烦了啊!
有个小哥和我也有同样的苦恼,索性写了一个自动化工具 kubectx....
我们在使用kubernetes/docker时最重要的是要对数据做持久化,ceph做为一个开源的分布式存储系统,支持对象存储,块存储rbd,文件系cephfs,同时具备高可靠,易扩展等特性,kubernetes+ceph在很多企业已经落地实施,也是目前最成熟可靠的方案,本篇博客主要为大家讲解基于storageclass动态管理存储的整个生命周期
1.创建kubernetes对接ceph需要的外部客户端 rbd-provisioner
注:假如你的kubernetes集群是由kubeadm初始化时,那么kube-controller-manager本身是没有rbd的命令,所以需要...
nginx-rewrite重定向跳转实例工作中常用到nginx的rewrite,网上许多文章也写了一些,不过实用性的话,还是往下看吧。
nginx重定向-跳转实例:
1,将www.a.com/connect 跳转到connect.a.com
1rewrite ^/connect$ http://connect.a.com permanent;
2,将connect.a.com 301跳转到www.a.com/connect/
123if ($host = "connect.a.com"){rewrite ^/(.*)$ http://www.a.com/c...
多余的DNS查询一些需要解析外部DNS域名的应用,当运行在容器中时,如果我们在容器的network namespace中对dns报文(udp port 53)进行抓包,可能会发现在正确解析之前,还经过了若干次多余的尝试。
下面是我在容器中ping google.com,同时在容器的network namespace中抓到的包。
1234567891011121314151617181920212223sudo nsenter -t 3885 -n tcpdump -i eth0 udp port 53tcpdump: verbose output suppressed, use -v o...
我的博客从上线第一天起就使用了 HTTPS,用的是 Cloudflare,直接在其后台配置即可。如果你是用 nginx、apache、haproxy 等服务器来运行自己的网站,给大家推荐 Certbot,可以自动化来配置 SSL 证书和定时更新。
下面记录我自己为 servicemesher.com 网站配置 HTTPS 证书的过程,全程不需要 5 分钟。
环境网站的托管环境如下:
OS:CentOS 7.6 阿里云
网站服务器:Nginx,使用 yum 安装,版本 1.12
提前配置好 Nginx,确保使用 HTTP 先可以访问到网站
注意:请使用 yum 命令安装 nginx,...
编者按 本文从多个维度阐述了使用更少的大节点与更多的小节点来组建 Kubernetes 集群各自的优势与劣势,并结合实践经验给出了选择工作节点数量和大小的一般方法。
引言在创建 Kubernetes 集群时,您首先会想到的问题之一就是:“我应该创建何种类型的工作节点,以及应该创建多少个?”。
如果您正在搭建内部集群,是应该购买最新一代的超级服务器,还是使用数据中心里的十几台旧机器呢?
或者您使用的是托管 Kubernetes 服务,例如 Google Kubernetes Engine (GKE),是应该使用 8 个 n1-standard-1 实例,还是应该使用 2 个 n1-st...
显式与隐式 Go 语言社区对于显式的初始化、方法调用非常推崇,类似 Spring Boot 和 Rails 的框架其实都广泛地采纳了『约定优于配置』的中心思想,简化了开发者和工程师的工作量
init 在这里先以一个非常常见的函数 init 为例,介绍 Go 语言社区对显式调用的推崇;相信很多人都在一些 package 中阅读过这样的代码:
123456789101112131415161718var grpcClient *grpc.Clientfunc init() { var err error grpcClient, err = grpc.Dial(......
基于自定义指标 除了基于 CPU 和内存来进行自动扩缩容之外,我们还可以根据自定义的监控指标来进行。这个我们就需要使用 Prometheus Adapter,Prometheus 用于监控应用的负载和集群本身的各种指标,Prometheus Adapter 可以帮我们使用 Prometheus 收集的指标并使用它们来制定扩展策略,这些指标都是通过 APIServer 暴露的,而且 HPA 资源对象也可以很轻易的直接使用。
下面来看具体怎么实现的!
部署应用 首先,我们部署一个示例应用,在该应用程序上测试 Prometheus 指标自动缩放,资源清单文件如下所示:(podinfo....
https://dockerhub.mirrors.nwafu.edu.cn/
使用方法 修改 /etc/docker/daemon.json ,加入:
123{ "registry-mirrors": ["https://dockerhub.mirrors.nwafu.edu.cn/"]}
然后重新启动 Docker 服务:
12sudo systemctl daemon-reloadsudo systemctl restart docker