Tag - Kubernetes

Kubernetes Docker    2018-12-14 11:30:39    1123    0    0
https://www.docker.com/sites/default/files/social/docker_facebook_share.png![](/api/file/getImage?fileId=5c1749dcaddba40f1200002d) 提起容器,大家可能首先想到的是 Docker,Docker 已经当之无愧的成为容器界巨头。如果你使用 Kubernetes 作为私有云
Kubernetes    2018-12-07 10:08:57    609    0    0
kubernetes多集群管理平台[Wayne](https://github.com/Qihoo360/wayne) v1.1.0正式发布 新增加了Ingress支持,增加了国际化,增加了部署资源的迁移,详见[https://github.com/Qihoo360/wayne/blob/v1.1.0/CHANGELOG.md](https://github.com/Qihoo360/wayn
Kubernetes    2018-11-20 02:32:40    400    0    0
# wayne开源宣传稿 Wayne:企业级可视化多集群Kubernetes一站式管理平台 ## 宣言 Wayne是一个通用的、基于Web的Kubernetes多集群一站式可视化管理平台。内置了丰富多样的功能,满足企业的通用需求,同时插件化的方式可以方便集成定制化功能。 Wayne已大规模服务于360搜索,承载了内部绝大部分业务,稳定管理了近千个业务,上万个容器,运行了两年多时间,经受住
Kubernetes Docker    2018-11-13 08:51:07    445    0    0
【编者的话】随着容器化进程的加速,容器编排的需求也越来越强烈。而容器编排也经历了从Kubernetes、Mesos和Swarm三足鼎立到今天的Kubernetes一统江湖的局面。现在越来越多的公司选择基于Kubernetes来构建企业内部的私有云。本次分享将为大家介绍360搜索基于Kubernetes打造私有云的整体架构,以及遇到的一些问题和解决方案,希望可以使大家在打造私有云过程中少走一些弯路
Kubernetes    2018-06-28 07:02:49    296    0    0


我们很高兴地宣布Kubernetes 1.11,我们2018年的第二次发布!


今天的发布不断推进Kubernetes的成熟性、可扩展性和灵活性,标志着团队在过去一年中努力工作的功能取得了重大进展。这个最新版本是网络关键特性的结晶,为SIG-API Machinery和SIG-Node提供了两个主要功能用于beta测试,并继续增强存储功能,这是过去两个版本的焦点。此版本中的功能使得可以将任何基础架构、云或内部部署插入到Kubernetes系统中。


这个版本中值得注意的是增加了两个备受期待的功能:基于IPVS的群集内负载平衡和CoreDNS作为群集DNS附加选项,这意味着增加了生产环境应用程序的可扩展性和灵活性。 官方博客:https://kubernetes.io/blog/2018/06/27/kubernetes-1.11-release-announcement/

 

 

转载自 https://mp.weixin.qq.com/s/lwxwlW0jaui5Njz4x27Tyg

Kubernetes    2018-06-20 06:35:33    358    0    0

今天给到大家介绍一下 Client-go 中的一个非常关键的工具包 Informer。 Informer 内部实现极其复杂,详细介绍的文章也很少,很多人反馈比较难用。但不得不承认它也是一个设计精良、安全可靠的组件,值得我们去一探究竟。

Informer 简介

Informer 基础功能

Informer 是 Client-go 中的一个核心工具包。在 Kubernetes 源码中,如果 Kubernetes 的某个组件,需要 List/Get Kubernetes 中的 Object,在绝大多 数情况下,会直接使用 Informer 实例中的 Lister()方法(该方法包含 了 Get 和 List 方法),而很少直接请求 Kubernetes API。Informer 最基本 的功能就是 List/Get Kubernetes 中的 Object。

如下图所示,仅需要十行左右的代码就能实现对 Pod 的 List 和 Get。

Informer 高级功能

Client-go 的首要目标是满足 Kubernetes 的自身需求。Informer 作为其中的核心工具包,面对 Kubernetes 极为复杂业务逻辑,如果仅实现 List/Get 功能,根本无法满足 Kubernetes 自身需求。因此,Informer 被设计为一个灵活而复杂的工具包,除 List/Get Object 外,Informer 还可以监听事件并触发回调函数等,以实现更加复杂的业务逻辑。

Informer 设计思路

Informer 设计中的关键点

为了让 Client-go 更快地返回 List/Get 请求的结果、减少对 Kubenetes API 的直接调用,Informer 被设计实现为一个依赖 Kubernetes List/Watch API 、可监听事件并触发回调函数的二级缓存工具包。

更快地返回 List/Get 请求,减少对 Kubenetes API 的直接调用

使用 Informer 实例的 Lister() 方法, List/Get Kubernetes 中的 Object 时,Informer 不会去请求 Kubernetes API,而是直接查找缓存在本地内存中的数据(这份数据由 Informer 自己维护)。通过这种方式,Informer 既可以更快地返回结果,又能减少对 Kube

Kubernetes    2018-06-16 07:37:48    968    0    0
![](/api/file/getImage?fileId=5b24c7aeaddba4075b00000c) 随着微服务架构的火爆,Etcd作为服务发现或者分部署存储的基础平台也越来越频繁的出现在我们的视野里。因此对于快速部署一套稳定高可用的Etcd集群的需求也越来越强烈,本次就带领大家一起使用Kubernetes的Statefulset特性快速部署一套Etcd集群。 ## 什么是Etcd
Kubernetes    2017-05-24 10:46:51    146    0    0

场景对比

  • Secret:当你想要存储一些敏感数据时使用Secret,例如(passwords, OAuth tokens, ssh keys, credentials等)
  • ConfigMap : 当需要存储一些非敏感配置数据时可以使用ConfigMap,例如应用程序的ini,json等配置文件。

ConfigMap:

创建ConfigMap

  1. kind: ConfigMap
  2. apiVersion: v1
  3. metadata:
  4. name: example-config
  5. namespace: default
  6. data:
  7. example.property.1: hello #key-value形式,key规则必须满足dns域名规则。value为字符串。
  8. example.property.2: world
  9. example.property.file: |- #配置文件使用方式,直接把文件内容放入value即可
  10. property.1=value-1
  11. property.2=value-2
  12. property.3=value-3

使用方式:

1.填充环境变量

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: dapi-test-pod
  5. spec:
  6. containers:
  7. - name: test-container
  8. image: gcr.io/google_containers/busybox
  9. command: [ "/bin/sh", "-c", "env" ]
  10. env:
  11. - name: SPECIAL_LEVEL_KEY
  12. valueFrom:
  13. configMapKeyRef:
  14. name: example-config #需要使用的ConfigMap名称,必须已经存在
  15. key: example.property.1 #对应ConfigMap data 的key
  16. restartPolicy: Ne