暂无个人介绍
前言 对于日志系统的重要性不言而喻,参照沪江的一篇关于日志系统的介绍,基本上日志数据在以下几方面具有非常重要的作用: 数据查找:通过检索日志信息,定位相应的 bug ,找出解决方案 服务诊断:通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态 数据分析:可以做进一步的数据分析,比如根据请求中的课程 id ,找出 TOP10 用户感兴趣课程 日志+大数据+AI的确有很多想象空间。
前言 prometheus在容器云的领域实力毋庸置疑,越来越多的云原生组件直接提供prometheus的metrics接口,无需额外的exporter。所以采用prometheus作为整个集群的监控方案是合适的。
实验环境说明 实验架构 lab1: master 11.11.11.111 lab2: node 11.11.11.112 lab3: node 11.11.11.113 复制代码 实验使用的Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : ENV["LC_ALL"] = "en_US.
什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS。 Kubernetes有个出名的监控agent---cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime)。
前言 最近几天完成了 Nacos 在Kubernetes 部署,顺便写篇文章记录下部署过程,项目地址Nacos-K8s,有兴趣的可以去了解下,后续会提交到Nacos-Group 里面。 Kubernetes Nacos 本项目包含一个可构建的Nacos Docker Image,旨在利用State.
实验环境说明 实验架构图 lab1: etcd master haproxy keepalived 11.11.11.111 lab2: etcd master haproxy keepalived 11.
文档说明 本文面向容器初学者,作者先简单的用MySQL官方镜像搭建一个可运行的单实例数据库,而后考虑生产或现实需求,一步一步完善并揉合K8S多个技术,从而构建一个复杂且可供生产用的MySQL单实例库。
搭建etcd集群 前言 kubeadm安装的集群,默认etcd是一个单机的容器化的etcd,并且k8s和etcd通信没有经过ssl加密和认证,这点是需要改造的。 所以首先我们需要先部署一个三节点的etcd集群,二进制部署,systemd守护进程,并且需要生成ca证书。
之前在k8s与网络--Flannel解读一文中,我们主要讲了Flannel整体的工作原理。今天主要针对Flannel v0.10.0版本进行源码分析。首先需要理解三个比较重要的概念: 网络(Network):整个集群中分配给 flannel 要管理的网络地址范围 子网(Subnet):flanne.
本文通过修改kubeadm源码让kubeadm默认的一年证书过期时间修改为99年 我已经编译好了一个放在了github上,有需要的可以直接下 代码编译 编译环境镜像我已经放到dockerhub上了:fanux/kubernetes-build:v1.
简介 使用kubeadm配置多master节点,实现高可用。 安装 实验环境说明 实验架构图 lab1: etcd master haproxy keepalived 11.11.11.111 lab2: etcd master haproxy keepalived 11.
看到Terraform可以替代kubectl管理k8s资源的生命周期,于是调研了下它的使用场景,并对比Terraform和Helm的区别 一.Terraform介绍 Terraform是一款开源工具,出自HashiCorp公司,著名的Vagrant、Consul也出自于该公司。
简介 使用kubeadm配置多master节点,实现高可用。 安装 实验环境说明 实验架构 lab1: etcd master keepalived 11.11.11.111 lab2: etcd master keepalived 11.
一、Kubernetes介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S。K8S是Google内部一个叫Borg的容器集群管理系统衍生出来的,Borg已经在Google大规模生产运行十年之久。
通用说明 如果多次换不同网络插件实验,每次实验前先把/etc/cni/net.d/目录下文件清空 rm -rf /etc/cni/net.d/* 复制代码 flannel # 创建flannel目录下载相关文件 mkdir flannel && cd flannel wget https://raw.
前言 对于监控这块,我们基于prometheus实现,当然做了大量的优化,包括前面所讲到的配置接口化。我们整个监控的UI部分,没有采用社区流行的grafana,而是自己实现了一套。我们后端的服务按照功能拆分了几大块,例如拓扑,网络流量,配置,元数据等等。
前言 一直在思考部署应用到k8s的姿势,之前介绍过helm,个人感觉helm把记录数据放到k8s中不是特别好。最近发现了weave的flux项目(A tool for deploying container images to Kubernetes services)。
简介 CoreDNS是一个Go语言实现的链式插件DNS服务端,是CNCF成员,是一个高性能、易扩展的DNS服务端。可以很方便的部署在k8s集群中,用来代替kube-dns。 使用kubeadm初始化时指定 安装方法与《centos7使用kubeadm安装k8s集群》基本一致 只需要简单修改kubeadm-master.
从telegraf改造谈golang多协程精确控制 前言 telegraf是infuxdb公司开源出来的一个基于插件机制的收集metrics的项目。整个架构和elastic公司的日志收集系统极其类似,具备良好的扩展性。
简介 traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现。
RancherVM是一个开源的、轻量化的虚拟机管理工具,让用户能够和运行Docker容器一样,打包和运行虚拟机。 RancherVM项目自几年前推出以来,得到了大量用户的积极反馈。用户也在过去几年时间里为Rancher Labs工程团队提出了不少极有价值的意见与建议,尤其是对节点集群上的虚拟机的管理这一方面的需求。
简介 kube-router是一个新的k8s的网络插件,使用lvs做服务的代理及负载均衡,使用iptables来做网络的隔离策略。部署简单,只需要在每个节点部署一个daemonset即可,高性能,易维护。
本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是作为参考,大家可以根据实际情况做出调整。 集群规划 在实际案例中发现,有不少同学使用了很多的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集群的优势。
简介 本文章主要介绍k8s如何使用kube-router实现pod通信,服务代理,网络策略隔离等功能 kube-router是一个新的k8s的网络插件,使用lvs做服务的代理及负载均衡,使用iptables来做网络的隔离策略。
许多用户他们想要集成domain name zones(现有域名区域)到Kubernetes DNS 命名空间。例如,混合云用户可能希望在群集内解析其内部“.corp”域地址。其他用户可能具有由非Kubernetes服务发现系统(如Consul)组成的区域。
打开这篇文章的同学,想必对 docker 都不会陌生。docker 是一种虚拟容器技术,它上手比较简单,只需在宿主机上起一个 docker engine,然后就能愉快的玩耍了,如:拉镜像、起容器、挂载数据、映射端口等等。
简介 使用kube-router把k8s集群中的pod ip和cluter i暴露集群外部,实现集群外的节点直接访问k8s的pod和svc 环境说明 本实验在已经安装配置好k8s集群基础之上进行实验,k8s安装参考博客其他文章。
改造telegraf的buffer实现 前言 最近在使用telegraf的场景中,要求数据在程序意外终止的时候不丢失。按照telegraf最初的原始实现,在running_output内部维护了两个buffer,分别是metrics和failMetrics。
Mount propagation 挂载传播允许将Container挂载的卷共享到同一Pod中的其他Container,甚至可以共享到同一节点上的其他Pod。 一个卷的挂载传播由Container.volumeMounts中的mountPropagation字段控制。
前言 最近连续996加班,一直没有时间完成drone系列文章。drone-wechat插件实现了一半,由于企业微信token申请比较麻烦,所以也没有进展。今天抽出时间,研究了一下scp插件,主要目的是实现非容器项目的部署。
前言 在之前文章中,一直讲prometheus的metrics以及apm的指标的重要性,多侧重于收据的收集和存储。如果不对这些数据进行数据分析,那么就没有收集的意义了。通过数据分析和挖掘,让数据产生价值。
写在前面 最近在研究docker集群(kubernetes)的监控,为了彻底弄清楚,简单看了一点源码。这里分享一下我学到的东西。 docker api: stats 首先是docker的api,stats的具体使用场景如: http://$dockerip:2375/containers/$con.
前言 有5种方法可以让集群外访问运行在Kubernetes集群上的应用程序(pod)。接下来我们详细讨论Kubernetes的hostNetwork,hostPort,NodePort,LoadBalancer和Ingress功能。
前言 整个基于k8s的pass平台,关键的一部分就是CICD。CICD又是devops的关键部分。之前主流的工具是Jenkins。今天主要介绍的是drone。drone用go语言实现的,drone是前google员工2013年开源的一个CI/CD工具,现在已经拉了投资商业化了。
前言 在上一篇文章中,我们只是简单介绍了一下drone的部署。接下来会逐步深入介绍,后期也会翻译一些官方的文档以及我在实际工作中用到的插件的介绍。这篇文章,主要是一个完整的drone demo。pipeline中,包括了git clone 拉取代码,go build 构建,生成docker镜像并推送到harbor,notify 通知。
extended-resources extended-resources在k8s1.9中是一个stable的特性。可以用一句话来概括这个特性: 通过向apiserver发送一个patch node 的请求,为这个node增加一个自定义的资源类型,用于以该资源的配额统计和相应的QoS的配置。
Rancher Kubernetes拥有RBAC(基于角色的访问控制)功能,此功能可以让管理员配置不同的策略,允许或拒绝用户和服务帐户访问Kubernetes API资源。 为了更好地理解RBAC功能是如何工作的,本文将阐明如何使用Kubernetes API进行身份认证,以及RBAC授权模块如何与认证用户协同工作。
在Rancher中,由于Kubernetes是基于Cattle引擎来部署,所以在Kubernetes部署完成之后,我们可以通过Link Graph来很清晰地看到整体的部署情况。 既然基于Cattle引擎部署,也就是说需要两个compose文件,k8s引擎的compose文件放在https://github.com/rancher/ra... 下面,这里面有两个相关目录kubernetes与k8s,k8s是Rancher1.2开始使用的,而kubernetes则是Rancher1.2之后开始使用的。
前言 本文主要讲如何把drone部署到k8s集群当中,本身drone这种基于容器的pipeline方式,和k8s是相当契合的。这样的好处有: k8s集群守护drone-server 和drone-agent。
CRD简介和使用姿势 CustomResourceDefinition(CRD)是 v1.7 + 新增的无需改变代码就可以扩展 Kubernetes API 的机制,用来管理自定义对象。它实际上是 ThirdPartyResources(TPR) 的升级版本,而 TPR 已经在 v1.8 中删除。
近日发现一个问题:应用程序在返回Http Redirect的时候丢失了原先访问的端口。比如,我们这样访问http://IP-A:Port-A/app/delete,这个url会响应302,但是它返回的Response header Location里丢失了端口,正确的结果应该是这样:http://IP-A:Port-A/app/index,但返回的却是:http://IP-A/app/index,把端口丢失了。
前言 了解 k8s 的同学都知道,kube-apiserver 对外提供 RESTful API 接口提供 查询,监听集群(资源)状态的服务,kube-apiserver 主要就做一件事,就是如何将 RESTful API (CREATE, DELETE, UPDATE, GET .
在利用VisualVm和JMX远程监控Java进程和VisualVm利用SSL连接JMX的方法里介绍了如何使用VisualVm+JMX监控远程Java进程的方法。那么如何监控一个运行在K8S集群中的Java进程呢?其实大致方法也是类似的。
本文介绍几种在K8S中限制资源使用的几种方法。 资源类型 在K8S中可以对两类资源进行限制:cpu和内存。 CPU的单位有: 正实数,代表分配几颗CPU,可以是小数点,比如0.5代表0.5颗CPU,意思是一颗CPU的一半时间。
前言 大型软件(linux,android .etc)一般都有自己的构建系统,k8s 也不例外,本文简要介绍 k8s 构建系统 构建流程 release 以 quick-release 为例,在命令行执行以下命令 # make quick-release make 在源代码根目录 Mak...
随着容器技术的发展,k8s 也越来越火热。在网络上有许多关于 k8s 的文章,但大部分都是关于集群部署相关的, 而这篇文章主要讲作为应用开发者如何使用 k8s 。 github准备 预备知识 Docker,学习 k8s 之前了解 Docker 是毋庸置疑的。
前言 本小节应该是这个系列剩下的两个小节之一了。剩下一个是之前承诺好的drone-wechart插件。本节主要介绍利用helm部署应用到kubernetes中。 至于helm,详细可以参考FreeWheel Lead Engineer 张夏写的一系列文章。
Kubernetes节点的底层由一个叫做“容器运行时”的软件进行支撑,它负责比如启停容器这样的事情。最广为人知的容器运行时当属Docker,但它不是唯一的。事实上,容器运行时这个领域发展迅速。为了使Kubernetes的扩展变得更容易,我们一直在打磨支持容器运行时的K8s插件API:容器运行时接口(Container Runtime Interface, CRI)。
Kubernetes Events虽不常被提起,却意义非凡。它存储在Etcd里,记录了集群运行所遇到的各种大事件。本系列文章将一步一步地揭开Kubernetes Events的神秘面纱。 师出有名 前些天群里有位同学(@二东)提问说怎么通过API得到kubectl describe pod的结果,我立刻找到了Kubernetes相关的API并回复他,但他说这不是他要的东西。
本文介绍了kubernetes官方提供的日志收集方法并介绍了Fluentd日志收集器并与其他产品做了比较。最后介绍了好雨云帮如何对k8s进行改造并使用ZeroMQ以消息的形式将日志传输到统一的日志处理中心。