暂无个人介绍
本次,我分享的主题是《东方国信基于Kubernetes构建容器云平台的实践和思考》。 先讲一下背景,国信之前的软件部署方式是找台机器,把war包或者jar包往机器上一扔,启动就可以了,所有功能都在一个包里面,模块之间相互耦合,导致新功能开发上线周期很长,客户的需求得不到及时满足。
节点构造如下 : 节点ip 节点角色 hostname 192.168.0.57 node bigdata3 192.168.0.56 node bigdata4 192.168.0.58 node bigdata5 192.
kube-dns 是 kubernetes 基于 DNS 的服务发现模块,主要由三个容器组成,分别是 dnsmasq, kube-dns, sidecar,整体的结构如图。 sidecar sidecar 是一个监控健康模块,同时向外暴露metrics 记录,但是为啥叫三蹦子不知道。
简介 kubeadm是一个kubernetes官方提供的快速安装和初始化拥有最佳实践(best practice)的kubernetes集群的工具,虽然目前还处于 beta 和 alpha 状态,还不能用在生产环境,但是我们可以通过学习这种部署方法来体会一些官方推荐的kubernetes最佳实践的设计和思想。
体系结构 Kube路由器是围绕观察者和控制器的概念而建立的。 观察者使用Kubernetes监视API来获取与创建,更新和删除Kubernetes对象有关的事件的通知。 每个观察者获取与特定API对象相关的通知。
为什么要有这俩玩意儿? 我们在kubernetes上部署应用的时候,经常会需要传一些配置给我们的应用,比如数据库地址啊,用户名密码啊之类的。我们要做到这个,有好多种方案,比如: 我们可以直接在打包镜像的时候写在应用配置文件里面,但是这种方式的坏处显而易见而且非常明显。
本文将总结一下我们目前使用Prometheus对Kubernetes集群监控的实践。 我们选择Prometheus作为监控系统主要在以下各层面实现监控: 基础设施层:监控各个主机服务器资源(包括Kubernetes的Node和非Kubernetes的Node),如CPU,内存,网络吞吐和带宽占用,磁盘I/O和磁盘使用等指标。
本文通过介绍美图线上容器化的实践经验,包括线上遇到的实际问题,来探讨 Kubernetes 环境下的网络方案设计。值得正在转型 K8S 的架构师学习和借鉴。 李连荣,美图高级系统研发工程师,曾建立支持千万的长连接服务,从零开始在建立美图的容器化服务,并主导完成美图容器化的网络方案。
calico是一个安全的 L3 网络和网络策略提供者。 calico使用bgp的原因:why bgp not ospf 有关BGP rr的介绍 安装方式 标准托管安装(ETCD存储) 需要提前安装etcd集群# 创建calico连接etcd的secret kubectl create secret.
Kubernetes API Server 中有一个功能,能让用户(对工作负载)进行决策,这一功能在 1.9 中已经走入成熟期。 Admission 是 Kubernetes 中最强大的工具之一,可以通过限制创建对象的方式来增强 Kubernetes 集群的安全性,这部分一直是编译在代码之中的。
概述: Kubernetes项目目前依然延续着之前爆炸式的扩张。急需能够理解Kubernetes原理并且贡献代码的软件开发者。学习Kubernetes源码并不容易。Kubernetes是使用相对年轻的Go语言编写,并且拥有大量的源代码。
大家好,我叫杨朝乐,来自才云科技基础设施部门。今天给大家分享一个平时可能接触得较少的话题:关于 Kubernetes 的稳定性和可用性。 下面是今天分享以下 5 个主题: 认识稳定性 认识异常 Kubernetes 里面的高可用方案 如何处理异常 我的经验分享 认识稳定性 Kubernetes 集群的稳定性和众多因素相关。
简介 Istio 是一个由 IBM、Google 以及 Lyft 联合推出的开源软件,以无痛方式为运行在 Kubernetes 上的微服务提供流量管理,访问策略管理以及监控等功能。这一软件目前仅在 Kubernetes 上运行,今后可能会扩展到其他平台。
当你使用kuberentes的时候,有没有遇到过Pod在启动后一会就挂掉然后又重新启动这样的恶性循环?你有没有想过kubernetes是如何检测pod是否还存活?虽然容器已经启动,但是kubernetes如何知道容器的进程是否准备好对外提供服务了呢?让我们通过kuberentes官网的这篇文章Configure Liveness and Readiness Probes,来一探究竟。
本文是Kubernetes.io官方文档中介绍如何创建暴露外部IP地址的Kubernetes Service 对象。 学习目标 运行Hello World应用程序的五个实例。 创建一个暴露外部IP地址的Service对象。
支持的集群类型 单主机集群 可增删主节点的高可用集群 可增删主节点的高可用集群 用途:建议用户在生产环境中使用 功能:高可用的Etcd集群;支持至少2个Master节点;支持高可用的Vespace存储;局域网内的时间同步组件;内置的镜像仓库(Alpha);应用级别的负载均衡(Alpha)等 其实,在内部实现中,为了使整个逻辑更加的简单,我们将主节点上的组件,只与本节点的apiserver联系,当然,Etcd节点为独立的模块,我们当前的Etcd节点都运行在master节点上。
目的 redis clustor 需要6台服务器才能正常运⾏,由于种种原因,开发或者某些特别的需求,只能在3台服务器上运⾏redis clustor。在不使用哨兵模式情况下,而使⽤最新的clustor模式运行redis。
要理解kubernetes的list-watch机制,首先应该熟悉理解kubernetes的watch包中的各种实现以及原理。这篇文章将从代码实现看看kubernetes的watch包实现。从kubernetes1.6之后,kubernetes的watch包抽取到了apimachinery这个项目下。
背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户、管理员和系统中各个组件的日志信息。 Kubernetes日志审计是Kube-apiserver组件的一部分功能,通过日志审计来记录apiserver上面所有请求处理过程。
前言 该文章已归档到 kubernetes-handbook 第五章【领域应用】中,一切内容以 kubernetes-handbook 为准,该文档可能不会及时更新。 以下内容参考:A Service Mesh for Kubernetes Linkerd 作为一款 service mesh 与k.
replication controller是kube-controller-manager中一个重要的控制器,主要是rs进行控制,确保pods的数量恰好和rs的规定一致。因此replication controller主要对这两类进行watch,一类是replicationset,另一类是pods。
背景概念 在Kubernetes中,为了保证业务不中断或业务SLA不降级,需要将应用进行集群化部署。通过PodDisruptionBudget控制器可以设置应用POD集群处于运行状态最低个数,也可以设置应用POD集群处于运行状态的最低百分比,这样可以保证在主动销毁应用POD的时候,不会一次性销毁太多的应用POD,从而保证业务不中断或业务SLA不降级。
从 Mesos 到 Kubernetes 之前的调度框架是基于 Mesos 自研的。采用的语言是 Python。运行了大概两年多的时间了,也一直比较稳定。但随着业务的增长,现有的框架的问题逐渐暴露。 调度速度遇到瓶颈,影响大业务的部署速度。
背景 k8s能够帮助我们的服务实现服务高可用,其提供的副本机制能够有效的保证运行实例的副本数,从而当某个实例异常后服务可以重新被自动唤起,但在我们的生产环境中,某些特殊的服务(如广告资金服务或计费服务)因服务重启期间而导致的业务中断,对业务请求的延时响应也是不可忽略的问题;而在kubelet的部分版本升级中,也可能会因版本的升级进而导致已经运行的容器服务发生重启;而在特殊的生产环境中类似的操作直接引起的服务重启是需要我们尽可能去规避的; 此篇内容即是对kubelet版本升级与container自动重启这一关联过程原因分析以及供参考方案的简单介绍。
面写过过几篇关于在Kubernetes上运行有状态服务相关的博文: Kubernetes资源对象之Persistent Volumes 在Kubernetes Pod中使用Ceph RBD Volume 在Kubernetes上部署有状态服务 最近需要在我们的一个Kubernetes集群上部署Redis,因此重新整理,写一下如何在Kubernetes上使用Sateful Set部署Redis。
Node授权是一种特殊授权模式,专门授权由kubelet访问的API请求。 概述 Node授权器允许kubelet执行的API操作包括: 读: services endpoints nodes pods secrets, configmaps, persistent volume claims a.
1.概况 首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置,其中最主要的内容为设置集群的网络地址空间。例如,设定整个集群内所有容器的IP都取自网段“10.1.0.0/16”。
Kubernetes市场的大幅增长是有据可查的。它是目前使用最广泛的编排平台,但不是唯一一个。Kubernetes的广泛使用迫使它加速成熟并且使技术社区迅速革新。随着新的和更多的厂商在云原生空间竞争,它使得市场更为分裂。
一个运行中的容器,缺省情况下,对文件系统的写入,都是发生在其分层文件系统的可写层的,一旦容器运行结束,所有写入都会被丢弃。因此需要对持久化支持。 Kubernetes 中通过 Volume 的方式提供对存储的支持。
导读: Kubernetes如今风靡一时,所有主要的云服务提供商都将其作为部署云原生应用的解决方案。Kubernetes有哪些显著的特性和工具优势,让企业开始接受它?本文作者给出了系统的梳理。 “Action without orchestration is burn out; orchestration w/o action is management.” 没有编排的行动是完蛋的,没有行动的编排是管理,行动加上编排是领导。
今天让我们聊聊 Kubernetes 的公私钥和证书认证。 本文内容会提及如何根据需要对 CA、公私钥进行组织并对集群进行设置。 Kubernetes 的组件中有很多不同的地方可以放置证书之类的东西。
Kubernetes做为目前主流的容器集群管理平台,需要整体统筹平台资源使用情况、公平合理的将资源分配给相关pod容器使用,并且要保证容器生命周期内有足够的资源来保证其运行。 与此同时,由于资源发放的独占性,即资源已经分配给了某容器,同样的资源不会在分配给其他容器,对于资源利用率相对较低的容器来说,占用资源却没有实际使用(比如CPU、内存)造成了严重的资源浪费,Kubernetes需从优先级与公平性等角度提高资源的利用率。
Kubernetes一骑绝尘开挂来,那么企业应该开始向Kubernetes迁移吗?什么情况下真正的接受它?一些技术前沿公司先行一步的实践恐怕最有说服力和参考价值。本文即是一则很好的参考。 1Kubernetes如今风靡一时,它是庞大的云原生运动中的一部分。
在分布式系统上管理服务是运维团队面临的最困难的问题之一。在生产中突破新软件并学习如何可靠地运营是非常重要的。本文是一则实例,讲述为什么学习运营Kubernetes很重要,以及为什么很难。本文是关于Kubernetes bug导致的一小时中断故障的事后剖析。
使用kubeadm安装安全高可用kubernetes集群[安装包地址] 非高可用安装三步即可 在master上 cd shell && init.sh && master.sh 在node上 init.
近期,CNCF基金会宣布Kubernetes成为其第一个毕业的项目。这意味着Kubernetes“足够成熟和具有足够的弹性,可以在各种规模的企业中,任何行业中大规模地管理容器”。近日CNCF的首席运营官Chris Aniszczyk接受媒体采访时,谈了Kubernetes为什么如此受欢迎程,以及CNCF正在孵化的其他项目进度。
本文来自于Red Hat咨询顾问Bilgin Ibryam所编写的一篇白皮书,名为《PRINCIPLES OF CONTAINER-BASED APPLICATION DESIGN》。已被被Kubernetes官网转载。
众所周知,K8S安装难点在于镜像下载。查询网上许多关于K8S安装部署的文章,作者要么是将镜像下载使用的工作交给了读者完成,要么是放在共享云盘中,由读者下载后导入使用。都知道,如果你不是该云盘提供商的会员,镜像下载速度堪比蜗牛。
前言 本文已归档到 kubernetes-handbook 【第三章用户指南】的【在Kubernetes中开发部署应用】小节中,一切更新以 GitHub 为准。 本文档不是说明如何在 kubernetes 中开发和部署应用程序,如果您想要直接开发应用程序在 kubernetes 中运行可以参考 适用于kubernetes的应用开发部署流程。
初衷 自从kubernetes(k8s)出现以来,安装复杂、部署困难就一直被业内吐槽,同时也把很多初学者挡在门外。虽然官方也有专门用来入门的单机部署方案:Minikube,和用来搭建集群的Kubeadm,但国内绿色的网络环境让官方的方案变得异常复杂。
1. 准备服务器 这里准备了三台ubuntu虚拟机,每台一核cpu和2G内存,配置好root账户,并安装好了docker,后续的所有操作都是使用root账户。虚拟机具体信息如下表: 系统类型 IP地址 节点角色 CPU Memory Hostname ubuntu16.
1. 部署ETCD(主节点) 1.1 简介 kubernetes需要存储很多东西,像它本身的节点信息,组件信息,还有通过kubernetes运行的pod,deployment,service等等。都需要持久化。
1. 理解认证授权 1.1 为什么要认证 想理解认证,我们得从认证解决什么问题、防止什么问题的发生入手。 防止什么问题呢?是防止有人入侵你的集群,root你的机器后让我们集群依然安全吗?不是吧,root都到手了,那就为所欲为,防不胜防了。
序 这是差不多2年前我整理的一篇纯手工搭建Kubernetes的文档,里边涉及的软件版本相对偏低一些,但对一些初学者来说应该依然具有一定的借鉴意义。 环境介绍: OS:Linux redhat721 3.
四、安装k8s 1、安装 使用的是k8s 1.2.4版本。 将kubernetes.tar.gz 上传主机,并解压。 tar -xzvf kubernetes.tar.gz cd kubernetes/server/ tar -xzvf kubernetes-server-linux-amd64.
Thom Crowe 技术圈里从来都不缺少热门的解决方案,而作为开发者,我们也总是被酷炫的新技术所吸引,期望这些新思路能够帮助我们应对技术挑战和业务问题。 然而问题在于,新技术成熟并获得广泛应用之前,我们很难判断该技术是否真的是我们用例的最佳选择。
1:服务器信息以及节点介绍 系统信息:centos1708 minimal 只修改IP地址 主机名称 IP 备注 node01 192.168.150.181 master and etcd rode02 192.
本篇延续过往手动安装方式来部署 Kubernetes v1.10.x 版本的 High Availability 集群,主要目的是学习 Kubernetes 安装的一些元件关析与流程。若不想这么累的话,可以参考 Picking the Right Solution 来选择自己最喜欢的方式。
Kubernetes自从1.6起便号称可以承载5000个以上的节点,但是从数十到5000的路上,难免会遇到问题。 本片文章即分享Open API在kubernetes 5000之路上的经验,包括遇到的问题、尝试解决问题以及找到真正的问题。
序言 Helm是Kubernetes的一个包管理工具,用来简化基于Kubernetes平台运行的应用的部署和管理,极大的方便了集群运维人员及应用开发人员工作。 本指南是官方Kubernetes的github库中,helm项目下的文档的翻译,依照 https://docs.helm.sh/ 的文档架构和组织,当前翻译了第一大部分的用户指南部分,后续会陆续更新其他章节,用于给刚接触Kubenetes和Helm的朋友一个参考手册。