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

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 飞雪无情

Go语言适合干什么

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

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

Go语言适合干什么

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

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

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...阅读全文

写在最前面 - 《看懂每一行代码 - 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

万字解读: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 原生 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

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

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

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

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

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 * 综合指标支...阅读全文

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 的游戏服务器Agones

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

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

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 文余两人

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

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

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 网友

golang简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wf649572404/article/details/80820172 简介 golang是谷歌2009年发布的开源编程语言,截止目前go的release版本已经到了1.10。go语言的开发人员都是计算机界大神一般的存在: Thompson:1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言。 Pike:曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统计划的成员。他与Thompso...阅读全文

博文 2019-05-07 16:31:41 wf649572404

基于 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 网友

时速云企业级 PaaS 技术沙龙 | 深圳站

Docker 容器技术的出现改变了企业应用从开发、构建到发布、运行的整个生命周期,而 Kubernetes 经历近4年的发展也已成为容器集群管理领域的事实标准,基于容器 + Kubernetes 的新型 PaaS 逐渐成为云计算的主流。 越来越多的企业开始使用基于 Kubernetes 技术构建企业级容器 PaaS 平台,从而加速业务应用的交付、提高运维效率、实现微服务架构升级。可以预见,未来几年企业级容器 PaaS 将会迎来爆发式增长。 时速云是国内首个基于 Kubernetes 的企业级容器 PaaS 平台,自成立之日起,就根植于技术社区。迄今为止,时速云已在北京、上海、杭州、深圳等地成功举办 8 期 Docker&Kubernetes 技术沙龙,得到了众...阅读全文

为什么使用Go语言做后端开发[

为什么使用Go语言做后端开发[转]? 简单高效:几乎所有主流的编程语言如Java、C++、PHP、Python、JavaScript等等都是可以用于服务端开发的,Go语言作为后起之秀,在语言层面具有语法简洁、执行效率高(底层语言)的特点;相比之下,Java和Python、PHP都显得低效,C++则太过麻烦,而Go则可以做到简单与高效兼顾; Go语方特点 高并发:Go语言是主打并发、为并发而生的,其出发点即是瞄准大数据+云计算时代背景下的高并发、分布式应用场景; 跨平台:可以在不同平台直接编译生成可执行程序,基础内存占用很少,小应用占用几M大型应用占用个几十M就能很好运行,这使得golang可以在树莓派之类的小设备上很好的运行,这一点表现比java要好的多; 容器化、分布式、微服务化是服务端发...阅读全文

博文 2019-10-28 00:03:21 抚琴煮酒

容器本地工作流引擎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 网友

火热报名中~时速云企业 PaaS 技术沙龙 第九期【深圳站】

Docker 容器技术的出现改变了企业应用从开发、构建到发布、运行的整个生命周期,而 Kubernetes 经历近4年的发展也已成为容器集群管理领域的事实标准,基于容器 + Kubernetes 的新型 PaaS 逐渐成为云计算的主流。 越来越多的企业开始使用基于 Kubernetes 技术构建企业级容器 PaaS 平台,从而加速业务应用的交付、提高运维效率、实现微服务架构升级。可以预见,未来几年企业级容器 PaaS 将会迎来爆发式增长。 时速云是国内首个基于 Kubernetes 的企业级容器 PaaS 平台,自成立之日起,就根植于技术社区。迄今为止,时速云已在北京、上海、杭州、深圳等地成功举办 8 期 Docker&Kubernetes 技术沙龙,得到了众多企业及开发者的大力...阅读全文

2020年带你飞

2020 年了,你还在立 flag 吗? 我发现人们从来就不缺立 flag 的精神,只是缺乏坚持行动的毅力,2020年别光立 flag 了,行动起来,你的的这周下周下下周都被 51Reboot 承包了!所有分享免费参与(录屏回放没有,错过就是错过了)。 51Reboot 近期分享安排 2020.1.07——Go 内存详解 2020.1.09——Go-监控系统设计与源码解析 2020.1.16——大佬教你如何从 ES 初学者到 ES 专家 《Go 内存详解》 1、内存分区 image 1.1 代码区(text) 1.2 全局初始化数据区/静态数据区(data) 1.3 未初始化数据区(bss) 1.4 栈区(stack) 1.5 堆区(heap) image 2、Go Runtime 内存分配...阅读全文

博文 2020-01-07 11:32:52 51reboot

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 伊布

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

【技术干货】时速云企业级容器PaaS技术沙龙 第八期

目前,基于Kubernetes的容器PaaS在企业级数字化转型中扮演了越来越重要的角色。而Kubernetes在开源容器编排技术里独占鳌头,并在市场中迅速升温,越来越多的企业开始使用基于Kubernetes技术构建企业级PaaS平台,从而加速业务应用的交付、提高运维效率、实现微服务架构升级。可以预见,未来几年企业级容器PaaS市场将呈现出持续的爆发式增长。 那么,对于还未使用这一技术,或者尚在探索阶段的企业和开发者来说,如何应用好它,如何构建企业级 PaaS平台,如何把Kubernetes技术与具体业务结合?未来又有怎样的发展趋势?我们将在本次沙龙为大家带来一些经验分享。 时速云(TenxCloud)自2014年成立之日起,就根植于技术社区。迄今为止时速云已在北京、上海、深圳等地...阅读全文

【技术干货】时速云企业级容器PaaS技术沙龙 第八期

目前,基于 Kubernetes 的容器 PaaS 在企业级数字化转型中扮演了越来越重要的角色。而 Kubernetes 在开源容器编排技术里独占鳌头,并在市场中迅速升温,越来越多的企业开始使用基于 Kubernetes 技术构建企业级 PaaS 平台,从而加速业务应用的交付、提高运维效率、实现微服务架构升级。可以预见,未来几年企业级容器 PaaS 市场将呈现出持续的爆发式增长。 那么,对于还未使用这一技术,或者尚在探索阶段的企业和开发者来说,如何应用好它,如何构建企业级 PaaS 平台,如何把 Kubernetes 技术与具体业务结合?未来又有怎样的发展趋势?我们将在本次沙龙为大家带来一些经验分享。 时速云( TenxCloud )自 2014 年成立之日起,就根植于技术社区。...阅读全文

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

go 语言进阶学习笔记(一)

一 我先想分析一下现在有哪些公司使用go 语言,go语言在实际开发中有哪些使用场景。我觉得学习一门新语言一个很重要的问题。Go大概09年面世以来,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,也诞生了很多基于Go的服务和应用,比如Dokcer、k8s等,现在我们看下,有哪些大公司在用Go语言了。 【Google】 这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ 查看更多Google的Go开源项目。 【七牛】 整个产品(包括基础服务、Web端、统计平台、各类小工...阅读全文

博文 2018-10-30 21:34:41 曹帅_前端工程师

在 Kubernetes 中构建容器镜像kaniko

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

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

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

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

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

Gopher Meetup 北京站

1. Golang 在滴滴 to G 业务中的应用和探索——叶剑峰|滴滴专家工程师讲师介绍:Web领域工作多年,对网站系统架构和相关工作比较感兴趣。现负责滴滴智慧交通部门工程交付方面的工作。 内容简介: 滴滴在智慧交通的 to G 业务中大量使用 Golang 进行政府项目的交付,这里介绍下过去一年中我们在 to G业务中的应用和探索 To G 业务与特点介绍 Golang To G 业务的架构实践 Golang To G 业务的代码实践2. Go 在边缘计算的应用实践——张海深|京东云产品研发部 对等网络部负责人讲师介绍:北京邮电大学硕士学位,先后就职于朗讯贝尔实验室、亚马逊中国、EMC等;对电商系统、分布式存储、区块链、边缘计算等有一定了解,取得多项中美专利。内容简介:边缘计算简介边缘计...阅读全文

博文 2019-09-02 15:34:35 百格活动

高性能任务调度引擎Volcano

Volcano 是基于 Kubernetes 的批处理系统,源自于华为云 AI 容器。Volcano 方便 AI、大数据、基因、渲染等诸多行业通用计算框架接入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力。 ## 整体架构 ![volcano](https://static.oschina.net/uploads/img/201907/03110508_8Omm.png) Volcano 提供一整套目前 K8S 在批量和弹性工作负载处理中缺失的机制,包括: 1. 机器学习/深度学习 2. 生物信息学/基因组学 3. 其他“大数据”应用 这些类型的应用程序通常运行在Volcano集成的Tensorflow,Spark,PyTorch,MPI等通用域框架上...阅读全文

kubernetes CRD开发指南

扩展kubernetes两个最常用最需要掌握的东西:自定义资源CRD 和 adminsion webhook, 本文教你如何十分钟掌握CRD开发. kubernetes允许用户自定义自己的资源对象,就如同deployment statefulset一样,这个应用非常广泛,比如prometheus opterator就自定义Prometheus对象,再加上一个自定义的controller监听到kubectl create Prometheus时就去创建Pod组成一个pormetheus集群。rook等等同理。 我需要用kubernetes调度虚拟机,所以这里自定义一个 VirtualMachine 类型 kubebuilder kubebuilder能帮我们节省大量工作,让开发CRD和admi...阅读全文

博文 2019-08-07 21:32:58 sealyun

生产级无服务器 PasS 平台Rainbond

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

CNCF 首个云原生存储项目ROOK

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

Kubernetes一键部署利器:kubeadm

Kubernetes一键部署利器:kubeadm 要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用。 这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位问题,并解决问题。 而更深入的学习容器技术的关键在于,如何使用这些技术来“容器化”你的应用。 比如,我们的应用既可能是 Java Web 和 MySQL 这样的组合,也可能是 Cassandra 这样的分布式系统。而要使用容器把后者运行起来,你单单通过 Docker 把一个 Cassandra 镜像跑起来是没用的。 要把 Cassandra 应用容器化的关键,在于如何处理好这些 Cassandra 容器之间的编排关系。比如,哪些 Cassandra 容器是主,哪些是从?主从容器如何区分?它们之间...阅读全文

博文 2019-02-12 22:34:44 大数据专栏

从零开始一步步构建运行在 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节点资源耗尽状态的处理

今天上午一到工位,就收到来自同事的“投诉”:私有云上的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

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 程序员小千

后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 数人云

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如何解决服务依赖呢?

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

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

自动化部署运维工具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 存储引擎。 但是,这种多组件的分布式系统增加了手...阅读全文