搭建及使用K8s集群 <简介>
- 1. Docker
- 2. Kubernetes
- 3. Flannel—-docker网络解决方案
- 4. ETCD—-高可用、强一致性的服务发现存储仓库
- 5. k8s-dashboard—-webUI
- 6. k8s-DNS——-服务发现
- 7. k8s-ingress—–对外暴露访问的负载均衡
概述
docker是虚拟化引擎,kubernetes是管理docker集群的应用,flannel是打通docker集群通讯的应用,etcd是配合flannel使用的,用来存储flannel的配置,k8s-dashboard k8s-DNS k8s-ingress 都是基于pods部署的应用,dashboard 是可操作的web界面,dns为了解析service的ip,ingress 为了向外部提供服务。
1. Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 —— [ 转自-百度百科]
2. Kubernetes
Kubernetes是Google开源的容器集群管理系统。它构建Ddocker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。本文旨在梳理Kubernetes的架构、概念及基本工作流,并且通过运行一个简单的示例应用来介绍如何使用Kubernetes。 —— [ 转自博客-天外有菌]
Kubernetes 总体概览:
Kubernetes 总体架构:
相关文章
http://www.csdn.net/article/2014-10-31/2822393
https://kubernetes.io/docs/home/
3. Flannel—-docker网络解决方案
在Container Cloud环境中,跨机器的容器互连一直是讨论的热点;Kubernetes的官方网站也提供了几种备选方案,如 L2网络, Flannel, OpenVSwitch等。本文主要描述Flannel在Kubernetes网络中的应用。
Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务;简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址,并使Docker容器可以互连。
相关文章
http://geek.csdn.net/news/detail/65804
4. ETCD—-高可用、强一致性的服务发现存储仓库
ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。该项目目前最新稳定版本为2.3.0. 具体信息请参考[项目首页]和[Github]。ETCD是CoreOS公司发起的一个开源项目,授权协议为Apache。
提供配置共享和服务发现的系统比较多,其中最为大家熟知的是[Zookeeper](后文简称ZK),而ETCD可以算得上是后起之秀了。在项目实现,一致性协议易理解性,运维,安全等多个维度上,ETCD相比Zookeeper都占据优势。
相关文章
https://yq.aliyun.com/articles/11035
https://coreos.com/etcd/
http://blog.csdn.net/shukebai/article/details/53464887
5. k8s-dashboard—-webUI
k8s集群的控制台,pod 方式部署
相关文章
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
6. k8s-DNS——-服务发现
因为docker 容器的ip是动态的,导致多个服务之间无法相互调用,k8s dns 就是为了解决该问题,服务地址采用以 k8s service的名称代替IP,调用服务时,dns会根据service的名称解析成对应pod的ip,这样应用就不用关心ip地址了
相关文章
http://blog.csdn.net/styshoo/article/details/69941606
7. k8s-ingress—–对外暴露访问的负载均衡
docker内部网络使用flannel打通了,各容易之间可以互相通信了,但是怎么向外提供服务呢,答:ingress
Ingress也是k8s中单独定义的对象(如下图所示),它的作用就是实现对外暴露访问的负载均衡,那么它和Service本身LoadBalancer有哪些区别呢?Ingress支持L4、L7负载均衡,LoadBalancer设计上只支持L4;Ingress基于Pod部署,并将Pod网络设置成external network;Ingress controller支持Nginx、Haproxy、GCE-L7,能够满足企业内部使用。
相关文章:
http://blog.csdn.net/rancherlabs/article/details/53991992
http://www.cnblogs.com/ericnie/p/6965091.html
http://blog.csdn.net/yevvzi/article/details/53844512
http://blog.csdn.net/yevvzi/article/details/53858220