【Docker】【K8S】
摘自:https://www.jianshu.com/p/f1f94c6968f5
正文:
主要涉及到以下关键字:
K8S、Docker、微服务、安装、教程、网络、日志、存储、安全、工具、CI/CD、分布式、实践、架构等;

以下盘点2018年一些精选优质文章!
漫画形式:
漫画:小黄人学 Service Mesh 之 Istio
漫画:Kubernetes中的ConfigMap和Secret
漫画:小黄人学 Kubernetes 对象
漫画:小黄人学 Kubernetes Service
回顾Docker+k8s:
容器、容器云与Kubernetes技术漫谈
Docker 诞生至2018,里程碑事件回顾!
从诞生到爆红,Kubernetes 极简史 !
问题/漏洞排查:
记一次Kubernetes/Docker网络排障 | Pod被无故重启上千次
Kubernetes 暴惊天大漏洞,请升级生产环境的集群
Kubernetes用户的安全宝典:被黑和不被黑的11个途径
Kubernetes 应用部署问题定位和处理
Kubernetes kubelet版本升级问题,排查思路与方案
企业实践:
面向容器日志的技术实践
58同城基于Kubernetes的容器云平台实践
3万容器,知乎基于Kubernetes容器平台实践
有赞5000实例,基于Kubernetes容器化实践
中国东信基于Kubernetes的容器云PaaS平台
实践总结:银行容器云平台建设需求与设计
万台服务器,单台只装一个Docker,世界级浏览器IT架构之旅
项目:
迈入容器时代,企业如何确保安全?
分布式系统事务一致性
轻量级微服务架构及最佳实践
企业云存储建设之路
微服务进入2.0时代
我是怎么把一个项目带崩的
优秀架构师必须掌握的架构思维
有关容器的6大误区和8大正确场景
实践分享:
Kubernetes部署rook+ceph存储系统
容器中的JVM资源该如何被安全的限制?
Kubernetes开源监控体系搭建试用及后续方案设计
Kubernetes 基于flannel 的集群网络
Kubernetes 网络排错指南
Kubernetes 垃圾回收机制分析
Kubernetes 监控神器 Prometheus 源码分析
深入浅出聊聊Kubernetes存储:详解Kubernetes存储关键概念
Kubernetes 下日志采集、存储与处理技术实践
Kubernetes RBAC 详细使用方法
Kubernetes基于EFK进行统一的日志管理方案
Docker:
DockerFile 命令总结
如何用100行实现Docker?
Docker:感觉自己萌萌哒
4个方面浅谈Docker的安全性支持
一步步了解 Docker 存储驱动
Docker: CPU我劝你善良!
Docker: 限制容器可用的内存
如何快速清理 Docker 无用资源
Docker最佳实践:5个方法精简镜像
Docker磁盘垃圾清理
安装:
使用 kubeadm 安装 Kubernetes 1.13
使用 Kubeadm 安装 Kubernetes 1.12
使用kubeadm安装Kubernetes v1.10以及常见问题解答
Kubernetes v1.10+Keepalived HA集群墙内部署实践
Kubeadm HA master(v1.13.0)离线包 + 自动化脚本 + 常用插件 For Centos/Fedora
Kubeadm HA master(v1.11.0)集群搭建(离线包+自动化脚本+ipvs+keepalived+calico)
Kubernetes HA 1.9 高可用集群,本地离线部署
Kubernetes基于Helm安装部署高可用的Redis
Kubernetes 基于 kubeadm 的安全配置和高可用
MySQL官方推荐: K8S 部署 MySQL 高可用方案
工具:
掌握Kubernetes衍生的9大开源项目
50+ 顶级开源 Kubernetes 工具列表
6个与弹性伸缩、调度相关的Kubernetes附加组件
50+ 最棒的 DevOps 开源工具
推荐30个用于微服务的顶级工具
100个容器周边项目,点亮你的容器集群技能树
牛逼工具推荐,探索 Docker 镜像,减少镜像大小
本文来自微信公众号:K8S中文社区
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。
这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。
后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。
Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。
正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。
什么是“开源”?开源,就是开放源代码。也就是将原来内部保密的程序源代码开放给所有人,然后让大家一起参与进来,贡献代码和意见。
有的软件是一开始就开源的。也有的软件,是混不下去,创造者又不想放弃,所以选择开源。自己养不活,就吃“百家饭”嘛。
2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。
不开则已,一开惊人。
越来越多的IT工程师发现了Docker的优点,然后蜂拥而至,加入Docker开源社区。
Docker的人气迅速攀升,速度之快,令人瞠目结舌。
开源当月,Docker 0.1 版本发布。此后的每一个月,Docker都会发布一个版本。到2014年6月9日,Docker 1.0 版本正式发布。
此时的Docker,已经成为行业里人气最火爆的开源技术,没有之一。甚至像Google、微软、Amazon、VMware这样的巨头,都对它青睐有加,表示将全力支持。
Docker火了之后,dotCloud公司干脆把公司名字也改成了Docker Inc. 。
Docker和容器技术为什么会这么火爆?说白了,就是因为它“轻”。
在容器技术之前,业界的网红是虚拟机。虚拟机技术的代表,是VMWare和OpenStack。
相信很多人都用过虚拟机。虚拟机,就是在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。
在“子电脑”里,你可以和正常电脑一样运行程序,例如开QQ。如果你愿意,你可以变出好几个“子电脑”,里面都开上QQ。“子电脑”和“子电脑”之间,是相互隔离的,互不影响。
虚拟机属于虚拟化技术。而Docker这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化。
虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。
而容器技术恰好没有这些缺点。它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。
它启动时间很快,几秒钟就能完成。而且,它对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB的空间,而容器只需要MB级甚至KB级。
正因为如此,容器技术受到了热烈的欢迎和追捧,发展迅速。
我们具体来看看Docker。
大家需要注意,Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。
想要搞懂Docker,其实看它的两句口号就行。
第一句,是“Build, Ship and Run”。
也就是,“搭建、发送、运行”,三板斧。
举个例子:
我来到一片空地,想建个房子,于是我搬石头、砍木头、画图纸,一顿操作,终于把这个房子盖好了。
结果,我住了一段时间,想搬到另一片空地去。这时候,按以往的办法,我只能再次搬石头、砍木头、画图纸、盖房子。
但是,跑来一个老巫婆,教会我一种魔法。
这种魔法,可以把我盖好的房子复制一份,做成“镜像”,放在我的背包里。
等我到了另一片空地,就用这个“镜像”,复制一套房子,摆在那边,拎包入住。
怎么样?是不是很神奇?
所以,Docker的第二句口号就是:“Build once,Run anywhere(搭建一次,到处能用)”。
Docker技术的三大核心概念,分别是:
镜像(Image)
容器(Container)
仓库(Repository)
我刚才例子里面,那个放在包里的“镜像”,就是Docker镜像。而我的背包,就是Docker仓库。我在空地上,用魔法造好的房子,就是一个Docker容器。
说白了,这个Docker镜像,是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
也就是说,每次变出房子,房子是一样的,但生活用品之类的,都是不管的。谁住谁负责添置。
每一个镜像可以变出一种房子。那么,我可以有多个镜像呀!
也就是说,我盖了一个欧式别墅,生成了镜像。另一个哥们可能盖了一个中国四合院,也生成了镜像。还有哥们,盖了一个非洲茅草屋,也生成了镜像。。。
这么一来,我们可以交换镜像,你用我的,我用你的,岂不是很爽?
于是乎,就变成了一个大的公共仓库。
负责对Docker镜像进行管理的,是Docker Registry服务(类似仓库管理员)。
不是任何人建的任何镜像都是合法的。万一有人盖了一个有问题的房子呢?
所以,Docker Registry服务对镜像的管理是非常严格的。
最常使用的Registry公开服务,是官方的Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像。
好了,说完了Docker,我们再把目光转向K8S。
就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。
就在这个时候,K8S出现了。
K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。
Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。
和Docker不同,K8S的创造者,是众人皆知的行业巨头——Google。
然而,K8S并不是一件全新的发明。它的前身,是Google自己捣鼓了十多年的Borg系统。
K8S是2014年6月由Google公司正式公布出来并宣布开源的。
同年7月,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等公司,相继加入K8S。
之后的一年内,VMware、HP、Intel等公司,也陆续加入。
2015年7月,Google正式加入OpenStack基金会。与此同时,Kuberentes v1.0正式发布。
目前,kubernetes的版本已经发展到V1.13。
K8S的架构,略微有一点复杂,我们简单来看一下。
一个K8S系统,通常称为一个K8S集群(Cluster)。
这个集群主要包括两个部分:
一个Master节点(主节点)
一群Node节点(计算节点)
一看就明白:Master节点主要还是负责管理和控制。Node节点是工作负载节点,里面是具体的容器。
深入来看这两种节点。
首先是Master节点。
Master节点包括API Server、Scheduler、Controller manager、etcd。
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
Scheduler负责对集群内部的资源进行调度,相当于“调度室”。
Controller manager负责管理控制器,相当于“大总管”。
然后是Node节点。
Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。
Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。这段不太好理解,跳过吧。
Docker,不用说了,创建容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
Kube-proxy,主要负责为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。
作者:鲜枣课堂
链接:https://www.jianshu.com/p/f1f94c6968f5
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。

浙公网安备 33010602011771号