暂无个人介绍
前言 这是和我一步步部署kubernetes集群项目((fork自opsnull))中的一篇文章,下文是结合我之前部署kubernetes的过程产生的kuberentes环境,部署master节点的kube-apiserver、kube-controller-manager和kube-scheduler的过程。
本文创作与2017年4月,文中有很多错误和模糊的地方在很长的时间内没有在此修正。以下内容都已迁移到了 kubernete-handbook(http://jimmysong.io/kubernetes-handbook)的“最佳实践”章节中,请以 kubernetes-handbook 中的内容为准,本书托管在 GitHub 上,地址 https://github.com/rootsongjc/kubernetes-handbook。
RBAC vs ABAC 目前 Kubernetes 中有一系列的鉴权机制。 https://kubernetes.io/docs/admin/authorization/ 鉴权的作用是,决定一个用户是否有权使用 Kubernetes API 做某些事情。
前言 这是kubernete官方文档中Ingress Resource的翻译,因为最近工作中用到,文章也不长,也很好理解,索性翻译一下,也便于自己加深理解,同时造福kubernetes中文社区。后续准备使用Traefik来做Ingress controller,文章末尾给出了几个相关链接,实际使用案例正在摸索中,届时相关安装文档和配置说明将同步更新到kubernetes-handbook中。
1、简介 Kubernetes的调度器在大多数情况下能过运行的很好,例如:它能够将Pod调度到有充足资源的Node上;它能够将一组Pod(ReplicaSet, StatefulSet,等)均匀的调度到不同的Node上;它尽力平衡各个节点的资源使用率等。
前言 Github地址https://github.com/rootsongjc/distributed-load-testing-using-kubernetes 该教程描述如何在Kubernetes中进行分布式负载均衡测试,包括一个web应用、docker镜像和Kubernetes controllers/services。
新搭建的Kubernetes集群如何承接外部访问的流量,是刚上手Kubernetes时常常会遇到的问题。 在公有云上,官方给出了比较直接的答案,使用LoadBalancer类型的Service,利用公有云提供的负载均衡服务来承接流量, 同时在多台服务器之间进行负载均衡。
Kubernetes的一个重要特性就是要把不同node节点的pod(container)连接起来,无视物理节点的限制。但是在某些应用环境中,比如公有云,不同租户的pod不应该互通,这个时候就需要网络隔离。
在不同的公有云上运行大规模视频音频编解码平台是非常有挑战的。Bitmoving在过去的平台运维中积累了很多经验,但是也有不少困难。所以,kubernetes首先吸引我们的就是它对底层公有云平台的抽象,并且提供了定义完好的API接口。
教你如何在中国区加速部署k8s,且实现自定义设置拥有k8s镜像的仓库与其命名空间。 概述 Kubernetes是一个强大的容器编排工具,帮助用户在可伸缩性系统上可靠部署和运行容器化应用。在容器领域内,K8s已毋庸置疑成为了容器编排和管理的社区标准,连Docker官方都已宣布支持K8s。
因为一些莫可名状的原因,国内网络使用 Kubeadm 颇有难度,这里大概说一下过程中的一些坑。 主体流程遵循官网指南:https://kubernetes.io/docs/getting-started-guides/kubeadm/ 1/4 准备工作 这里用包管理的方式安装 kubeadm、Docker 等组件。
IBM中国系统部软件架构师马达 大家好,很高兴能参加这次活动,今天主要会讲到关于策略的资源调度,做自己的产品也好,基本都是由资源调度为强项,我现在主要负责 Kubernetes 这边,主要做 Batch Job Admission and flexible resource allocation。
Kubernetes在1.3版本之后,增加了“集群联邦”Federation的功能。这个功能使企业能够快速有效的、低成本的跨区跨域、甚至在不同的云平台上运行集群。这个功能可以按照地理位置创建一个复制机制,将多个kubernetes集群进行复制,即使遇到某个区域连接中断或某个数据中心故障,也会保持最关键的服务运行。
本文是才云科技(CaiCloud)5月6日沙龙“Kubernetes Meetup 中国 2017”才云的首席架构师唐鹏程的演讲实录。 大家下午好,我是才云科技的唐鹏程,今天演讲的题目是《Monitoring Kubernetes cluster with prometheus》,我知道在坐很多人已经在实际应用 Kubernetes 了,并且在各个业务部门的应用容器化之后,已经可以在 K8S 里面正常运行。
在运行基于 Kubernetes 的 CI/CD 过程中,经常有需求在容器中对 Kubernetes 的资源进行操作,其中隐藏的安全问题,目前推荐的最佳实践也就是使用 Service Account 了。
本文讲解 kubernetes 的安全机制。主要会按照这几个部分来讲解:APIServer 认证、授权、准入控制等。 我们都知道 kubenetes 默认在两个端口提供服务:一个是基于 https 安全端口 6443,另一个是基于 http 的非安全端口 8080。
一、环境准备 目前测试为 5 台虚拟机,CentOS 系统,etcd、kubernetes 全部采用 rpm 安装,使用 systemd 来做管理,网络组件采用 calico,Master 实现了 HA;基本环境如下 IP 组件 10.
一位来自451 Research的分析师Carl Brooks表示:“如果你正确构建了运营云,并使用像K8s这样的容器技术,将会使它变得更加可行。 Brooks说,这对OpenStack私有云构建来说很重要。
前言 本文同步更新到Github仓库kubernetes-handbook中。 很多企业内部都有自己的ElasticSearch集群,我们没有必要在kubernetes集群内部再部署一个,而且这样还难于管理,因此我们考虑在容器里部署logstash收集日志到已有的ElasticSearch集群中。
使用kubeadm部署k8s集群 三步装集群:[离线包地址](https://market.aliyun.com/products/56014009/cmxz022571.html#sku=yuncode1657100000) 基础环境 关闭swap swapoff -a 再把/etc/fst.
很大的挑战。 接下来我讲详细介绍一下瓜子云的任务调度系统搭建所遇到的问题和解决方案。 需求 瓜子最早的时候,任务调度用的是Crontab,后来由于数据仓库的复杂调度需求,我们引入了Airflow。Airflow支持DAG依赖,失败重试,历史状态记录,log收集等多种非常使用的功能。
前言 在进行日志收集的过程中,我们首先想到的是使用Logstash,因为它是ELK stack中的重要成员,但是在测试过程中发现,Logstash是基于JDK的,在没有产生日志的情况单纯启动Logstash就大概要消耗500M内存,在每个Pod中都启动一个日志收集组件的情况下,使用logstash有点浪费系统资源,经人推荐我们选择使用Filebeat替代,经测试单独启动Filebeat容器大约会消耗12M内存,比起logstash相当轻量级。
花了几天时间,研究了Kubernetes DNS插件的源代码,对其实现有了个简单的理解。这篇文章我简单梳理下代码流程。 注:阅读DNS源码前,可以阅读DNS原理入门增加对DNS的认识。 架构图 这是我简单画的架构图,希望能帮助大家理解。
大家好,说到容器、Docker,大家一定会想到Kubernetes,确实如此,在2016年ClusterHQ容器技术应用调查报告显示,Kubernetes的使用率已经达到了40%,成为最受欢迎的容器编排工具;那么Kubernetes到底是什么呢?它是一个用于容器集群的自动化部署、扩容以及运维的开源平台;那么通过Kubernetes能干什么呢?它能快速而有预期地部署你的应用,极速地扩展你的应用,无缝对接新的应用功能,节省资源,优化硬件资源的使用。
Kubernetes 提供了许多云端平台与操作系统的安装方式,本章将以全手动安装方式来部署,主要是学习与了解 Kubernetes 创建流程。若想要了解更多平台的部署可以参考 Picking the Right Solution来选择自己最喜欢的方式。
如果你想使用Kubernetes来构建你的应用程序环境,通过OpenStack来部署Kubernetes其架构是一种推荐的方式,本文将与大家分享Kubernetes在OpenStack上的编排方式与其优化方法。
背景 公司的容器云平台需要新增应用的自动扩缩容的功能,以便能够更加智能化的对应用进行管理。 Kubernetes官方提供了HPA(Horizontal Pod Autoscaling)资源对象。要让我们部署的应用做到自动的水平的(水平指的是增减Pod副本数量)进行扩缩容,我们只需要在Kubernetes集群中创建HPA资源对象,然后让该资源对象关联某一需要进行自动扩缩容的应用即可。
1、为什么选择 Nginx Nginx 是一个 web 服务器,常用作反向代理、负载均衡以及 web 缓存。天生具有高并发能力,并且具有速度快、功能丰富、可靠性高以及占用资源少等诸多优点。 Nginx 在容器化/云端部署方面十分普遍,并且根据最新的 Docker 使用报告,在 45000 个样本容器中,使用量最大的就是 nginx。
kubernetes 概览 以下是 k8s 的整体架构,在 master 节点上主要是 kube-apiserver(整合了 kube-aggregator),还有 kube-scheduler,以及 kube-controller-manager,包括后端存储 etcd。
首先来看下微服务化游戏容器化探索之路 随着docker技术在近几年的快速发展,国内外掀起了一股容器之风。而我们也在这时,开启了游戏容器化的探索之路。最开始在docker容器的应用上,还是以VM的模式去部署,毕竟游戏是非常复杂的应用,没有统一的模式。
Kubernetes Kuryr 是 OpenStack Neutron 的子项目,其主要目标是通过该项目来整合 OpenStack 与 Kubernetes 的网络。该项目在 Kubernetes 中实作了原生 Neutron-based 的网络,因此使用 Kuryr-Kubernetes 可以让你的 OpenStack VM 与 Kubernetes Pods 能够选择在同一个子网上运作,并且能够使用 Neutron 的 L3 与 Security Group 来对网络进行路由,以及阻挡特定来源 Port。
Flannel概述 Flannel是将多个不同子网(基于主机Node)通过被Flannel维护的Overlay网络拼接成为一张大网来实现互联的,通过官方的一张网络拓扑图我们可以对其基本原理一目了然: 值得探讨的是,flannel的这个overlay网络支持多种后端实现,除上图中的UDP,还有VXLAN和host-gw等。
背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储。 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。
ConfigMap热更新测试 ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中,下文主要是探究 ConfigMap 的创建和更新流程,以及对 ConfigMap 更新后容器内挂载的内容是否同步更新的测试。
一、核心概念 Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能。云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要特性。
对于提供 HTTP 服务的系统来说,取得来源 IP 方式有两种: 利用包头取得来源 IP此方案是直接读取封包的来源 IP,但由于容器和外界沟通不像传统 Linux 主机有实体网卡对接,而是通过一系列的 NAT 规则置换包头后才传进容器内 (Understand container communication),导致取得错误的使用者 IP。
C2Container Service (ECS)和Kubernetes (K8s) 都解决了同样的问题:跨越主机集群管理容器。ECS和Kubernetes之间的斗争让我想起了vi和Emacs之间的编辑器之战:激烈的讨论集中于技术问题和个人信仰上。
Kubernetes 的资源和任务调度能力,能给自动化测试提供相当大力的支持,这里以 Jmeter 为例,讲讲如何在 Kubernetes 中使用 Jmeter 进行简单的性能测试。 开始之前 录制任务:本文所用镜像为 Jmeter 3.x 版本,建议提前录制一个简单的测试任务进行下面的操作。
service mesh,一个为云平台而设计的应用,云平台的本地应用该如何使用它?本文中,我们将讲述在Kubernetes中如何应用Linkerd作为service mesh,如何捕获和报告顶层服务指标如成功率、请求量和延迟,而不需要更改应用的代码。
背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是docker公司按照OCI标准规范编写的一个操作容器的命令行工具,containerd这个后台程序还可以操作满足OCI标准规范的其他容器工具,也就意味着以后只要是按照OCI标准规范开发的容器工具,都可以被containerd使用起来。
在本文中,我们将讲述如何使用linkerd作为service mesh在不需要修改任何应用代码的情况下,也能添加TLS至所有的“服务到服务”HTTP请求中。 注意:这是关于Linkerd、Kubernetes和service mesh的系列文章其中一篇,其余部分包括: Top-line servi.
在我们发表的上一篇关于linkerd的文章中提到过,linkerd是使用DaemonSet而非sidecar来安装的。在本文中,我们将解释我们为什么(怎么样)这么做。 注意:这是关于Linkerd、Kubernetes和service mesh的系列文章其中一篇,其余部分包括: Top-line .
Fluent Bit 和 Fluentd 一样,是 Treasure Data 资助的采集工具,二者对比如下: Fluentd FluentBit 范围 服务器 嵌入设备和 IoT 设备 内存 约 20 MB 约 150 KB 语言 C 和 Ruby C 性能 高 高 依赖 以 Ruby Gem 构建,依赖一系列的 Gem 零依赖,可能有些插件会有依赖。
概述除了服务发现、顶层指标和TLS,linkerd 也提供一种称为dtabs的强大的路由语言,它可以更改应用拓扑中的请求,甚至是单独某个请求的请求路径。本文中,我们会给您展示如何使用linkerd作为服务网格对新代码进行CI/CD管道最后一步的蓝绿发布。
很长时间没有写文章,一直在啃kubernetes文档,本来立志一定要读完所有的文档。还有它的最佳实践openshift的文档。但目前为止,我并没有读完kubernetes的文档。当前,我们有需求需要客制化kubernetes的调度函数,所以开始研究kube-scheduler的代码。
kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,[包地址在此](https://market.aliyun.com/products/56014009/cmxz022571.
利用Ansible部署kubernetes集群 本系列文档致力于提供快速部署高可用`k8s`集群的工具,并且也努力成为`k8s`实践、使用的参考书;基于二进制方式部署和利用`ansible-playbook`实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项。
作为Rancher 2.0的重要组件,Rancher Kubernetes Engine(RKE)现已正式全面发布!这是Rancher Labs推出的新的开源项目,一个极致简单易用、闪电般快速、支持一切基础架构(公有云、私有云、VM、物理机等)的Kubernetes安装程序。
概述 在这篇文章中,我们将向您展示如何使用Linkerd实现的Service Mesh来处理Kubernetes上的入口流量,在Service Mesh中的每个实例上分发流量。我们还将通过一个完整的例子来介绍Linkerd的高级路由功能:如何将特定的请求路由到较新版本的应用实例上,比如用于内部测试的、预发布的应用版本。
概述 在将新代码发布到生产环境之前, 预发布操作是构建一个可靠的、低宕机时间的软件系统的关键组成部分。但是,在微服务体系下,由于拆分出来的许许多多的微服务之间的依赖关系随着微服务数量成指数倍增长,从而增加了预发布操作的复杂性。