Go语言中文网 为您找到相关结果 383

go依赖包管理工具对比

July 10, 2017 in Tech GOPATH和GOROOT GOROOT并不是必须要设置的。 GOPATH必须要设置,但并不是固定不变的 本项目内部的依赖 管理外部的依赖包 使用GOPATH来管理外部依赖 vendor godep glide govendor golang官方dep 各依赖管理工具对比 gvt vendor的问题 当开始真正用go去做项目的时候,不可避免的就会遇到依赖包的问题。go的依赖包管理与java+maven的依赖管理不太一样,我们从GOPATH开始逐渐理解其思想,然后再对比下目前常用的依赖包管理工具。 GOPATH和GOROOT 初学者很容易会被这两个环境变量给搞晕。 GOROOT并不是必须要设置的。 GOROOT不是必须要设置的。参见Installin...阅读全文

博文 2017-07-30 05:45:50 伊布

Go语言 | 哪些大公司在用go语言?

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 Go大概09年面世以来,已经8年了,也算是8年抗战。在这8年中,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,也诞生了很多基于Go的服务和应用,比如Dokcer、k8s等,现在我们看下,有哪些大公司在用Go语言了。 Google这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/googl...阅读全文

博文 2017-09-16 03:34:14 飞雪无情

kubernetes RBAC实战 kubernetes 用户角色访问控制,dashboard访问,kubectl配置生成

kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,包地址在此 好用又方便,服务周到,童叟无欺 本文目的,让名为devuser的用户只能有权限访问特定namespace下的pod 命令行kubectl访问 安装cfssl 此工具生成证书非常方便, pem证书与crt证书,编码一致可直接使用 wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 chmod +x cfssl_linux-amd64 mv cfssl_linux-amd64 /bin/cfssl wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 chmod +x cfssljson_...阅读全文

博文 2017-11-24 12:04:42 fanux

多云环境应用管理平台OpenPitrix

OpenPitrix 是一个将应用程序打包和部署到诸如 QingCloud,AWS,Kubernetes 等多个云环境中的开放平台. Pixrix [Paitriks] 是指 PaaS 和 IaaS 的矩阵,可以轻松开发,部署,管理各种应用程序,包括各种 PaaS 运行时环境,即 Pitrix = PaaS + IaaS + Matrix。 它也意味着一个包含无尽的矩阵(PI - 希腊字母“π”)应用程序。 设计: 基本思想是解耦应用程序存储库和运行时环境。 应用程序可以运行的运行时环境是通过匹配运行时环境的标签和应用程序所在的存储库的选择器。详情请查看[如何设计项目](https://github.com/openpitrix/openpitrix/blob/master/docs...阅读全文

万字解读:Service Mesh服务网格新生代--Istio

Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜,这就是今天将要介绍的主角,扛起Service Mesh大旗,掀起新一轮微服务开发浪潮的Istio!讲师简介:敖小剑,十五年软件开发经验,微服务专家,专注于基础架构,cloud native拥护者,敏捷实践者。曾在亚信,爱立信,唯品会和ppmoney任职, 现任数人云资深架构师。以下内容为敖小剑在9月21号晚上进行的线上分享实录。今天的主角名叫 Istio,估计很多同学在此之前可能完全没有听过这个名字。请不必介意,没听过很正常,因为Istio的确是一个非常新的东西,出世也才四个月而已。今天的内容将会分成三个部分:介绍: 让大家了解Istio是什么,以及有什么好处,以及Istio背...阅读全文

博文 2017-10-20 11:23:51 敖小剑

写在最前面 - 《看懂每一行代码 - kubernetes》

我要写什么《看懂每一行代码 - kubernetes》会包含k8s整个项目的源码解析,考虑到门槛问题,在开始分析k8s之前我会通过一些更低难度的golang开源项目讲解来帮助大家提升golang编码技能;然后通过与k8s相关的一些项目的讲解,打通阻碍k8s学习的一些大障碍;最后集中火力,将kubernetes项目的整个源码吃透。总体来说,本系列计划分三步走完成源码层面掌握k8s的目标:golang技能提升k8s依赖技术k8s核心组件目前关于k8s应用的教程已经很多了,其中不乏相当优秀的文章,所以我不会特地去讲解k8s是功能层面知识点。本教程对大家的入门要求是会一点golang,会k8s的常规操作。写给谁看k8s的热门程度不需要我再赘述,k8s技术的重要性相信大家也都清楚,不会玩k8s怎么好意...阅读全文

博文 2018-06-19 16:37:04 CloudGeek

Kubernetes 原生 API 网关Gloo

Gloo 是一个基于 Envoy 的 Kubernetes 原生入口控制器和下一代 API 网关。Gloo 在函数级路由方面表现卓越,它支持传统应用程序、微服务与 Serverless。Gloo 设计独特,可支持混合应用,其中的多种技术、架构、协议和云可以共存。 ![image](https://static.oschina.net/uploads/space/2019/0709/182422_sWr6_3820517.png...阅读全文

k8s之CRD--为自定义资源生成代码

CRD简介和使用姿势 CustomResourceDefinition(CRD)是 v1.7 + 新增的无需改变代码就可以扩展 Kubernetes API 的机制,用来管理自定义对象。它实际上是 ThirdPartyResources(TPR) 的升级版本,而 TPR 已经在 v1.8 中删除。 一些使用场景: 提供/管理外部数据存储/数据库(例如 CloudSQL/RDS 实例) 对k8s基础资源进行更高层次的抽象(比如定义一个etcd集群) 其实crd在很多k8s周边开源项目中有使用,比如ingress-controller和众多的operator。 CRD 控制器 在使用 CRD 扩展 Kubernetes API 时,通常还需要实现一个新建资源的控制器,监听改资源的变化情况,并作进...阅读全文

博文 2018-05-12 23:34:38 iyacontrol

Go语言适合干什么

>版权:千锋教育go语言教研部 >作者:茹姐 >备注:本文原创,未经许可,转载必究 一、我们为什么选择Go语言 选择Go语言的原因可能会有很多,关于Go语言的特性、优势等,我们在之前的文档中也已经介绍了很多了。但是最主要的原因,应该是基于以下两方面的考虑: 1. 执行性能 毕竟是类C的执行速度,对于一些服务来说,性能是极其重要的一环,事关系统的吞吐、访问的延迟,进而会影响用户的体验,Go语言通过协程可以方便的实现并行处理,达到处理效率的最大化 ,提升系统的吞吐能力。 2. 开发效率 GO语言使用起来简单、代码描述效率高、编码规范统一、上手快。 通过少量的代码,即可实现框架的标准化,能快速的构建各种通用组件和公共类库,进一步提升开发效率,实现特定场景下的功能量产。 二、Go语言能做什么 Go ...阅读全文

博文 2019-04-22 17:21:59 1000phone

k8s :源代码导入

前言 最近在调研 Google kubernetes 开源的容器编排平台,刚好也在学习 Go 语言,所以想看看 Google 这样的大厂是怎么撸 Go 语言的,本文简单介绍如何下载 k8s 源代码,导入 Idea GoLand(对,我是搞 Java的~),对于这么庞大的项目,没有 IDE 看起来还是很费劲的,当然牛人除外 下载源代码 这个不用说了,地球村的人应该都知道 # mkdir -p /opt/kubernetes-src/src/k8s.io # cd /opt/kubernetes-src/src/k8s.io/ # git clone https://github.com/kubernetes/kubernetes.git # git checkout release-1.9 因...阅读全文

博文 2018-03-15 18:34:37 xingpingz

Kubernetes 原生 API 网关Ambassador

Ambassador 是一个基于 Envoy 构建的 Kubernetes 原生 API 网关,专为微服务而设计,它本质上是一个 Envoy 入口控制器,但具有更多功能。 ![image](https://static.oschina.net/uploads/space/2019/0709/181424_9AuX_3820517.png) 关键特性包括: * 自助服务配置,通过 Kubernetes 注解 * 支持 gRPC、HTTP/2 与 WebSockets * 支持 CORS、超时、加权轮询调度、粘性会话与速率限制 * 身份验证 * 强大的 TLS 支持,包括 TLS 客户端证书身份验证与 SNI * 综合指标支...阅读全文

基于filebeat二次开发Kubernetes日志采集

目前最为主流的容器编排工具主要有kubernetes、mesos、swarm,个人不评价谁好谁坏因为每个东西都有自己的优势。不过个人认为目前关注度最高的应该当属kubernetes,现在越来越多的公司采用kubernetes作为底层编排工具开发自己的容器调度平台。既然是一个PAAS平台那么就应该提供一个计算监控等一体的服务,因为是在kubernetes运行上面的容器大多数都是无状态服务,所以统一的日志管理又是其中必不可少的一部分。下面我们就讲一下如何基于filebeat开发属于自己的日志采集。 目前用的最多的日志管理技术应该是ELK,E应该没有太多的疑问基本上很多公司都是采用的这个作为存储索引引擎。L及logstash是一个日志采集工具支持文件采集等多种方式,但是基于容器的日志采集又跟传统的...阅读全文

博文 2017-09-06 07:05:57 YiQinGuo

Kubernetes学习系列

这段时间项目组内想要引入Kubernetes,作为第二代容器调度引擎,故最近在系统的学习Kubernetes。整理了一些学习笔记,心得,放到博客中,一来记录自己的学习经过,二来看能否帮到有需要的同学。详情见下: 1、Kubernetes核心概念总结——介绍基础架构、Pod、RC、Job、Service、Deployment等。 2、Centos7部署Kubernetes集群——基于Centos7,yum安装K8s,并配置集群,最后部署了容器覆盖网络——Flannel。 3、基于kubernetes集群部署DashBoard——基于上一篇部署的集群,搭建了DashBoard,其中介绍了一些众所周知的坑,比如google镜像国内无法下载。 4、为Kubernetes集群部署本地镜像仓库——针对上...阅读全文

博文 2018-03-14 10:28:05 xiaomin0322

Go语言适合干什么

一、我们为什么选择Go语言选择Go语言的原因可能会有很多,关于Go语言的特性、优势等,我们在之前的文档中也已经介绍了很多了。但是最主要的原因,应该是基于以下两方面的考虑:1、执行性能毕竟是类C的执行速度,对于一些服务来说,性能是极其重要的一环,事关系统的吞吐、访问的延迟,进而会影响用户的体验,Go语言通过协程可以方便的实现并行处理,达到处理效率的最大化 ,提升系统的吞吐能力。2、开发效率GO语言使用起来简单、代码描述效率高、编码规范统一、上手快。 通过少量的代码,即可实现框架的标准化,能快速的构建各种通用组件和公共类库,进一步提升开发效率,实现特定场景下的功能量产。二、Go语言能做什么Go 语言从发布 1.0 版本以来备受众多开发者关注并得到广泛使用,Go 语言的简单、高效、并发特性吸引了众...阅读全文

博文 2019-04-23 17:03:00 qfhanru

Golang 下的微服务 - 第 8 部分 - Kubernetes 和 容器引擎

[上一篇博文](https://studygolang.com/articles/12799) 我们看了看用 [Terraform](https://terraform.io/) 创建容器引擎集群。在本篇博文里,我们看看使用容器引擎和 [Kubernetes](https://kubernetes.io/) 部署容器到集群里。 ## Kubernetes 首先,什么是 [Kubernetes](https://kubernetes.io/) ? [Kubernetes](https://kubernetes.io/) 是一个开源的、管理容器的框架。与平台无关,就是说着你可以在你本机上,在 AWS 或者 Google Cloud,任何其他的平台运行它。(Kubernetes)能让你通过使用声明...阅读全文

博文 2018-04-19 11:13:19 ArisAries

Kubernetes 多集群管理平台Wayne

Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。 Wayne已大规模服务于360搜索,承载了内部绝大部分业务,稳定管理了近千个业务,上万个容器,运行了两年多时间,经受住了生产的考验。 ![image](https://oscimg.oschina.net/oscnet/f6b73f64508e1dd5a516dfd26cf1eb57fea.jpg) 基于 RBAC(Role based access control)的权限管理:用户通过角色与部门和项目关联,拥有部门角色允许操作部门资源,拥有项目角色允...阅读全文

开源项目 2018-12-05 09:30:01 网友

基于 openvswitch 的 SDN 服务k8s-ovs

k8s-ovs是一个使用[openvswitch](http://openvswitch.org/)为[K8S](https://kubernetes.io/)提供SDN功能的项目。该项目基于[openshift SDN](https://docs.openshift.org/latest/architecture/additional_concepts/sdn.html)的原理进行开发。由于[openshift](https://github.com/openshift/origin)的SDN网络方案和openshift自身的代码耦合在一起,无法像[flannel](https://github.com/coreos/flannel)和[calico](https://github.com...阅读全文

开源项目 2017-07-05 03:00:04 网友

kubernets部署备忘

February 20, 2017 in Tech 记录下GFW内k8s的部署流程,备忘。 1、各节点上配置hostname,配置resole.conf echo "titan1" > /etc/hostname sysctl kernel.hostname="titan1" echo "nameserver x.x.x.x" >> /etc/resolv.conf 2、各节点上加k8s的repo tee /etc/yum.repos.d/mritd.repo << EOF [mritdrepo] name=Mritd Repository baseurl=https://rpm.mritd.me/centos/7/x86_64 enabled=1 gpgcheck=0 EOF 3、各节点上...阅读全文

博文 2017-07-30 05:40:52 伊布

容器本地工作流引擎Argo Project

Argo是一个开源的容器本地工作流引擎,用于在Kubernetes上完成工作。 Argo实现为Kubernetes CRD(自定义资源定义)。 定义工作流中每个步骤都是容器的工作流。 将多步骤工作流建模为一系列任务,或使用图形(DAG)捕获任务之间的依赖关系。 使用Kubernetes上的Argo工作流程,可以在很短的时间内轻松运行计算密集型作业,以进行机器学习或数据处理。 在Kubernetes上本地运行CI / CD管道,无需配置复杂的软件开发产品。 Argo专为容器而设计,没有传统VM和基于服务器的环境的开销和限制。 Argo是云不可知的,可以在任何kubernetes集群上运行。 Argo with Kubernetes让云量级的超级计算机触手可及。 DAG或基于...阅读全文

开源项目 2018-09-14 09:30:02 网友

基于 Kubernetes 的游戏服务器Agones

Agones 是谷歌和游戏厂商育碧联合开发的游戏服务器。它是一个用于在 Kubernetes 上托管、运行和扩展专用游戏服务器的库。 谷歌在开发文档中表示未来谷歌将会使用 Kubernetes 实现服务器的集群管理和游戏扩展。而育碧方面也表示,通过 Agones 服务器,可以更好地安排服务器资源,为玩家们提供最出色的多人游戏服务。 **主要特性** - 能够在 Kubernetes 中定义一个 GameServer - 通过 yaml 或 API - 管理 GameServer 生命周期 - 包括健康检查和连接信息 - 客户端 SDK 与专用游戏服务器集成 **工作原理** ![image](https://static.oschina.net/uploads/spac...阅读全文

开源游戏玩家配对项目Open Match

Google Cloud 和 Unity 联合宣布了一项名为 Open Match 的开源玩家配对项目,该项目允许游戏开发者专注于玩家配对逻辑,而无需从头开始为每个游戏构建完整的配对系统。 Open Match 项目包括三个核心组件,一个用于游戏客户端的前端 API,一个用于游戏服务器的后端 API,以及一个运行自定义配对逻辑的游戏编排器。 Open Match 使用了 OpenCensus 和 Prometheus。 除了度量标准收集和默认配置设置之外,Open Match 还提供了高度可扩展性,可自定义的配对逻辑范例,允许基于延迟,等待时间和技能级别,进行简单的游戏玩家配对。 由于 Open Match 在 Kubernetes 上运行,因此可以部署在任何公共云、本地数据中心或工...阅读全文

Go语言发布8周年,官方称正开发下一代的 Go,将会有重大修改

今天是 Go 语言诞生 8 周年,在这个特别的日子,Go 语言官方博客发表了纪念刊文。博客称,全球有大约 100 万 Go 开发者,Go 语言在 GitHub 的 2017 年最流行编程语言榜上排第九。以下为博客全文:今天,我们庆祝 Go 语言作为开源项目发行 8 周年。在 Go 语言四周年纪念活动中,Andrew 以“让我们期待下一个四年吧!”结束了博文公告。如今,我们已经到达了这一里程时刻,我不禁回想,这个项目和它的生态系统与那时相比成长了多少。在我们的四年前的博文公告中,我们呈现了一个图表,通过搜索词“golang”来展示 Go 在谷歌趋势中越来越受欢迎的趋势。今天,我们将展示一张更新的图表。在这张流行度相对规模的图表中,四年前被我们设定为 100 的规模与当今相比仅仅为 17。Go ...阅读全文

博文 2017-11-13 03:30:40 wemedia.ifeng.com

k8s与CICD--将drone部署到kubernetes中,实现agent动态收缩

前言 本文主要讲如何把drone部署到k8s集群当中,本身drone这种基于容器的pipeline方式,和k8s是相当契合的。这样的好处有: k8s集群守护drone-server 和drone-agent。 可以利用rpc特性,根据agent负载压力来动态调整agent的数量。当然即使不动态调整,我们手动调整一下复制集的数目也是相当简单的。 部署到k8s集群以后,可以利用k8s已有的日志系统和监控系统。 其实在接下来的文章系列中,我们会不断侧重于k8s相关。依旧是直接先上yaml文件,先来一个直观的感受。 相关yaml文件 ConfigMap在此处可以理解为drone应用的配置文件。这里有关于server和agent一系列设置。不过在k8s中大家需要注意的是:更新configmap以后,对...阅读全文

博文 2017-12-17 04:04:39 iyacontrol

Golang 下的微服务 - 第 7 部分 - Terraform a Cloud

在之前的文章中,我们简要介绍了用户界面和Web客户端以及如何使用微工具包rpc代理与我们新创建的rpc服务进行交互。 本文将讨论如何创建云环境来托管我们的服务。 我们将使用 Terraform 在 Google Cloud 平台上构建我们的云群集。这应该是一篇相当短的文章,但它也很重要。 ## 为什么选择 Terraform? 我已经使用了几种不同的云供应解决方案,但对我而言,Hashicorps Terraform 感觉最容易使用并且得到最好的支持。近年来出现了一个术语:'基础设施作为代码'。为什么你想要你的基础设施作为代码?那么,基础设施很复杂,它描述了很多移动部件。跟踪基础架构的变更和版本控制变更也很重要。 Terraform 完美地做到了这一点。他们实际上已经创建了自己的DSL(域特...阅读全文

博文 2018-04-14 17:29:03 zhangyang9

golang的go.mod文件(解决墙问题)

以下粘贴: replace ( golang.org/x/build => github.com/golang/build v0.0.0-20190416225751-b5f252a0a7dd golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190411191339-88737f569e3a golang.org/x/exp => github.com/golang/exp v0.0.0-20190413192849-7f338f571082 golang.org/x/image => github.com/golang/image v0.0.0-20190417020941-4e30a6eb7d9a golang.org/x...阅读全文

博文 2019-05-07 20:34:53 文余两人

后Kubernetes时代,带你系统梳理K8S 12大关键特性

导读: Kubernetes如今风靡一时,所有主要的云服务提供商都将其作为部署云原生应用的解决方案。Kubernetes有哪些显著的特性和工具优势,让企业开始接受它?本文作者给出了系统的梳理。 “Action without orchestration is burn out; orchestration w/o action is management.” 没有编排的行动是完蛋的,没有行动的编排是管理,行动加上编排是领导。 ― Orrin Woodward” Kubernetes是一种优化资源利用率的抽象概念,它允许跨节点集群高效地进行应用程序分发。 Kubernetes,舵手 ! Kubernetes是一个希腊语单词,意思是“舵手”。 它是一个由谷歌开始的开源项目,从Borg衍生而来,在...阅读全文

博文 2018-03-14 10:34:56 数人云

kubernetes集群中利用etcd和grpc实现golang服务间通信

kubernetes集群中利用etcd和grpc实现golang服务间通信 注:文中涉及工作环境相关的网址和IP已经被替换 1. 项目背景 服务运行于docker容器中 使用kubernetes管理容器 服务有多个节点作为一个集群 使用rest接口设置服务缓存中的信息 需要将信息同步到集群中其他节点 2. 项目方案 使用grpc做服务间通信 从etcd中读取服务所有状态为running的节点信息,包括:podIp、status、hostIp、startedAt(启动时间) 服务启动时选取运行时间最长的节点,调用grpc接口请求缓存的信息同步到本容器的服务中 使用rest接口设置缓存的时候,遍历所有节点(不包括自身),调用grpc接口将信息同步到其他节点 方案特点: - 不需要借助额外的配置管...阅读全文

博文 2017-09-18 02:56:56 letian0805

k8s1.9.2基于kubeadm高可用安装教程,包含离线安装包,支持简单快速安装

使用kubeadm安装安全高可用kubernetes集群 安装包地址 如非高可用安装请忽略此教程,直接看产品页的三步安装。 单个master流程: 解压后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因为脚本用的相对路径所以不再当前目录会找不到文件) 在node上 cd shell && sh init.sh 。然后在node上执行master输出的join命令即可 提前准备 假设构建一个3master+2node的k8s集群,需要5台节点共同的条件如下: (yum install -y docker是1.12.6版本需要改cg)17.06安装教程: #0.删除老旧的 $ yum remove -y docker* #如果默认之前yum...阅读全文

博文 2018-02-11 16:34:40 fanux

轻松创建单机版 Kubernetes 集群Minikube

Minikube 是一个易于在本地运行 Kubernetes 的工具,可在你的笔记本电脑上的虚拟机内轻松创建单机版 Kubernetes 集群。便于尝试 Kubernetes 或使用 Kubernetes 日常开发。 [kubectl](https://kubernetes.io/docs/tasks/kubectl/install/) macOS [xhyve driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#xhyve-driver), [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [VMware Fusio...阅读全文

开源项目 2017-07-31 07:00:11 网友

自动化部署运维工具TiDB Operator

TiDB Operator 是 [TiDB](https://www.oschina.net/p/tidb) 在 Kubernetes 平台上的自动化部署运维工具,借助 TiDB Operator,TiDB 可以无缝运行在公有云厂商提供的 Kubernetes 平台上,让 TiDB 成为真正的 Cloud-Native 数据库。 第一,使用传统的自动化工具带来了很高的部署和运维成本。TiDB 的分层架构对于分布式系统是比较常见的,各个组件都可以根据业务需求独立水平伸缩,并且 TiKV 和 TiDB 都可以独立使用。比如,在 TiKV 之上可以构建兼容 Redis 协议的 KV 数据库,而 TiDB 也可以对接 LevelDB 这样的 KV 存储引擎。 但是,这种多组件的分布式系统增加了手...阅读全文

生产级无服务器 PasS 平台Rainbond

好雨云帮(Rainbond)是国内首个开源的生产级无服务器PasS平台,深度整合基于[Kubernetes](https://github.com/kubernetes/kubernetes)的容器管理、多类型CI/CD应用构建与交付、多数据中心的资源管理等技术提供完整的云原生应用管理解决方案,构建出应用、基础设施之间的互联互通生态体系。 Rainbond历经超过五年的生产运营打磨和验证,形成目前理念最新、生态最完整的无服务器PasS平台。如今,我们选择开源、拥抱社区,期望吸收最好的想法和实践,进一步完善和提升云帮,让更多企业和个人用户享受&ldquo;以应用为中心&rdquo;的技术体验。 结构: ![image](https://static.oschina.net...阅读全文

基于 Kubernetes 的 Service Mesh 开源解决方案Conduit

Conduit  是 Rust 语言开发的超轻量级 service mesh。 Conduit 的目标是成为最快、最轻、最简单并且最安全的 Service Mesh。他使用 Rust 构建了快速、安全的数据平面,用 Go 开发了简单强大的控制平面,总体设计围绕着性能、安全性和可用性进行。 Conduit 是让微服务安全可靠的下一代 Service Mesh。他能透明的管理服务之间的通信,自动提供可测性、可靠性、安全性和弹性的支持。还是跟 Linkerd 相仿,他的数据平面是在应用代码之外运行的轻量级代理,控制平面是一个高可用的控制器。然而和 Linkerd 不同的是,Conduit 的设计更加倾向于 Kubernetes 中的低资源部署。 Conduit 的特性: 轻量高...阅读全文

Kubernetes节点资源耗尽状态的处理

今天上午一到工位,就收到来自同事的“投诉”:私有云上的Kubernetes cluster中的一个node似乎不工作了,因为专门部署于那个节点上的应用挂掉了,并且长时间没有恢复。这个公司私有云上Kubernetes集群是v1.7.5版本,部署于双节假期之前。最近感觉K8s开发明显提速,连续发布版本,截至发稿时,最新发布的版本为v1.8.1了。这个集群一直运行相对稳定,今天这个异常到底是怎么一回事呢?于是打开terminal,开始了问题的调查。 一、问题现象 我们这个小集群一共有三个Kubernetes Node。首先,我查看集群中的所有Pods状态,发现node1和node2上的Pods均正常(running状态),但位于node3上的三个Pods均为“Pending”状态,这三个pod是w...阅读全文

博文 2017-10-25 06:54:44 bigwhite

Docker 和 Kubernetes 的可视化管理工具Weave Scope

Weave Scope 用于监控、可视化和管理 Docker 以及 Kubernetes。 Weave Scope 这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。 **Weave Scope 的功能特性** 拓扑映射 Scope 中的视图 图形或表格模式 灵活的过滤 强大的搜索 实时的应用和容器指标 使用插件 API 生成自定义指标 ![image](https://static.oschina.net/uploads/space/2018/0605/104712_Lrhb_2720166.png) ![image](https://static.oschina.net/uploads/space/2018/0605/10...阅读全文

从零开始一步步构建运行在 Kubernetes 上的服务

如果你用 Go 写过程序,就会发现用 Go 来写服务是很简单的事。比如说,只要几行代码就可以跑起来一个 HTTP 服务。但是如果我们想让服务在生产环境运行,我们还需要添加什么呢?本文将通过写一个能在 Kubernetes 上运行的服务的例子,来讨论上述问题。 文中所有的例子可以在 [这里(按标签分类)](https://github.com/rumyantseva/advent-2017/tree/all-steps) ,或者 [这里(按 commit 分类)](https://github.com/rumyantseva/advent-2017/commits/master) 找到。 ## 第一步 最简单的服务 从一个最简单的应用开始: `main.go` ```go package ma...阅读全文

博文 2018-01-11 15:41:37 polaris

Kubernetes 灾难恢复管理系统Heptio Ark

Heptio Ark 是一款用于 [Kubernetes](https://www.oschina.net/p/kubernetes) 集群资源和持久存储卷(PV)的灾难恢复管理系统。 Heptio Ark 提供了一个简单、可配置和可操作的强大方法来从一系列检查点备份和恢复应用和 PV ,这允许你在以下情况更好地自动化: **减少灾难恢复 TTR(响应时间):** 基础设施损坏 数据损坏 服务中断 **Kubernetes API 对象的跨云供应商迁移** (不支持持久卷快照的跨云提供商迁移) **通过 prod 环境复制开发和测试环境设置(+ CI)** 更具体地说,Heptio Ark 是将一个集群内服务与一个 CLI 相结合,可记录: Kubernetes A...阅读全文

Go 的大门已经打开

Go 在近 10 年间已经快速的成为了非常流行并且成功的系统编程语言。 ![image](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-door/BATMAN_GOPHER.png) > Go 带来的是 Gotham (译者注:哥谭,是蝙蝠侠的家乡,充满犯罪的黑暗城市,大意就是乱世出枭雄,Go 正是这样是个超级英雄而存在) ,它将分布式系统从黑暗中摆脱出来。 插画归功于 [Ashley McNamara](https://twitter.com/ashleymcnamara?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor) 和 [Renee ...阅读全文

博文 2018-01-28 11:44:57 zhucheer

在 Kubernetes 中构建容器镜像kaniko

通常,标准 Dockerfile 的生成需要与 Docker 后台进程交互访问,也就是需要本机 root 权限。如果是在 Docker 后台进程无法暴露的场景下,生成容器镜像就变得很困难。 kaniko 是 Google 开源的一个工具,旨在帮助开发人员从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像。 **工作原理:** kaniko 作为一个容器镜像运行,它接受三个参数:一个 Dockerfile ,一个构建上下文以及将镜像推送到的注册表。它在执行程序镜像中提取基本镜像的文件系统。然后,在 Dockerfile 中执行任何命令,快照用户空间中的文件系统。Kaniko 在每个命令后都会将一层已更改的文件附加到基本镜像。最后,执行程序将新镜像推送到指...阅读全文

新型沙箱容器运行时环境gVisor

gVisor 一款新型沙箱解决方案,其能够为容器提供安全的隔离措施,同时继续保持远优于虚拟机的轻量化特性。gVisor能够与Docker及Kubernetes实现集成,从而在生产环境中更轻松地建立起沙箱化容器系统。 gVisor能够在保证轻量化优势的同时,提供与虚拟机类似的隔离效果。gVisor的核心为一套运行非特权普通进程的内核,且支持大多数Linux系统调用。该内核使用Go编写,这主要是考虑到Go语言拥有良好的内存管理机制与类型安全性。与在虚拟机当中一样,gVisor沙箱中运行的应用程序也将获得自己的内核与一组虚拟设备——这一点与主机及其它沙箱方案有所区别。 ![image](https://static.studygolang.com/180503/5abb7acc7000...阅读全文

istio1.0安装教程,快速入门

广告 | kubernetes各版本离线安装包 祝贺istio1.0发布, 在此献上教程一份 安装 安装k8s 强势插播广告 三步安装,不多说 安装helm, 推荐生产环境用helm安装,可以调参 release地址 如我使用的2.9.1版本 yum install -y socat # 这个不装会报错 [root@istiohost ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz [root@istiohost ~]# tar zxvf helm-v2.9.1-linux-amd64.tar.gz [root@istiohost ~]# cp linux-amd64...阅读全文

博文 2018-08-01 19:34:52 fanux

kubernetes如何解决服务依赖呢?

文链接在此。写的比较通俗易懂,做个笔记,有一些是我自己的理解。 在微服务的世界里,任何应用都需要注意,其所依赖的服务是会中断的。所以当应用发现某服务(如数据库)出现了故障,应该每隔一端时间去重试。而上层框架(如k8s)会检测到服务故障,并尝试恢复这个服务。 但在现实世界里,有些旧应用并没有处理这种情况,但我们还是希望能将他们也跑在微服务框架里,以期得到微服务的红利(例如应用故障重启),所以,需要定义服务依赖关系,从而保障旧应用启动时,它所依赖的服务已经ready。 解决方法是,微服务框架替应用等待其所依赖的服务(api, database, etc),当服务准备好时,框架才启动该应用。 如何知道Pod已经Ready kubernetes提供了Readiness Probe功能,用来探测Pod...阅读全文

博文 2017-07-30 05:43:58 伊布

Kubernetes 原生 Serverless 框架Kubeless

Kubeless 是一个基于 Kubernetes 的 Serverless 框架,允许您部署少量代码,而无需担心底层基础架构管道。它利用 Kubernetes 资源提供自动扩展、API 路由、监控、故障排除等功能。 Kuberless 包含以下部分: 持 Python、Node.js、Ruby、PHP、Golang、.NET、Ballerina 和自定义运行时 CLI 兼容 AWS Lambda CLI 事件触发器使用 Kafka 消息传递系统和 HTTP 事件 Prometheus 默认监控函数调用和函数延迟 Serverless Framework 插...阅读全文

开源项目 2018-09-21 12:30:03 网友

CNCF 首个云原生存储项目ROOK

Rook将文件、数据块和对象存储系统引入到Kubernetes集群,与其他正在使用存储的应用程序和服务一起无缝运行。通过这种方式,云原生集群可以在公有云和本地部署中自给自足并且具备可移植性。该项目的开发目的是使企业能够通过动态应用编排,为在本地和公有云环境中运行的分布式存储系统实现数据中心现代化。 与传统的建立一个需要多年才能成熟的存储系统不同,Rook专注于Ceph这样经过实际测试的存储系统转变成一系列在Kubernetes上无缝运行的云原生服务。Rook深入Kubernetes,为安全、策略、配额、生命周期管理和资源管理提供无缝的体验。 云原生初创公司首席执行官兼Rook项目的开发人员Bassam Tabbara表示,开源软件意味着存储密集型工作负载不再需要在云原生环...阅读全文

Go语言基础入门学习线路图+开源项目推

Go作为近两年迅速流行起来的编程语言始终致力于使事情简单化。它并未引入很多新概念,而是聚焦于打造一门简单的语言,让开发者使用起来感觉异常快速且简单。相信有意向深入学习Go语言的小伙伴都在研究Go的开源项目,今天我就把自己觉得不错的6个Go开源项目和学习线路图分享给大家,希望大家能获得收获和成长。Go语言基础入门学习线路图:Go语言开源项目推荐:推荐一:kubernetes 【Star:44418】Kubernetes基于Docker,其目的是让用户通过Kubernetes集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。推荐二:etcd 【Star:21408】etcd是由CoreOS开发并维护键值存储系统,它使用Go语...阅读全文

博文 2018-11-28 18:35:13 程序员小千

k8s :从源代码构建 二进制 安装包

前言 本文介绍如何从源代码构建 k8s 二进制安装包 准备工作 操作系统 cenos7.x 安装 docker 参考 官网 或网上各路教程 下载源代码 $ cd /opt/ $ git clone https://github.com/kubernetes/kubernetes.git checkout $ cd /opt/kubernetes$ git checkout v1.8.4 -b v1.8.4 准备基础 docker 镜像 如果直接构建的话会发现会卡在那动不了,原因是构建脚本会从 gcr(google container registry)拉取构建需要的基础镜像,而且是强制拉取...,如果没有 VPN 的话就悲剧了。有两种方法: 从 Docker Hub 上 pull 别人上传的...阅读全文

博文 2017-12-30 00:34:38 xingpingz

为 Kubernetes 提供 CI/CD 服务Jenkins X

Jenkins X 是一个高度集成化的 CI/CD 平台,基于 Jenkins 和 Kubernetes 实现,旨在解决微服务体系架构下的云原生应用的持续交付的问题,简化整个云原生应用的开发、运行和部署过程。 **Jenkins X 不是一个全新的 Jenkins。** 它依然使用 Jenkins 作为持续交付的核心引擎,实际上 Jenkins X 作为 Jenkins 的一个子项目存在,专注于云原生应用的 CI/CD 实现,同时也帮助 Jenkins 自身完成云原生应用的转型,毕竟现在越来越多的人在诟病单体应用的设计和文件存储系统。 **HELM** Helm是用于管理Kubernetes资源对象的工具,类似APT,YUM和HOMEBREW,他通过将Kubernetes的资源对象打...阅读全文