learn.lianglianglee.com/专栏/左耳听风/085 程序员练级攻略(2018):容器化和自动化运维.md.html
2022-08-14 03:40:33 +08:00

724 lines
44 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>085 程序员练级攻略2018容器化和自动化运维.md.html</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/专栏/左耳听风/000 开篇词 洞悉技术的本质,享受科技的乐趣.md.html">000 开篇词 洞悉技术的本质,享受科技的乐趣</a>
</li>
<li>
<a href="/专栏/左耳听风/001 程序员如何用技术变现(上).md.html">001 程序员如何用技术变现(上)</a>
</li>
<li>
<a href="/专栏/左耳听风/002 程序员如何用技术变现(下).md.html">002 程序员如何用技术变现(下)</a>
</li>
<li>
<a href="/专栏/左耳听风/003 Equifax信息泄露始末.md.html">003 Equifax信息泄露始末</a>
</li>
<li>
<a href="/专栏/左耳听风/004 从Equifax信息泄露看数据安全.md.html">004 从Equifax信息泄露看数据安全</a>
</li>
<li>
<a href="/专栏/左耳听风/005 何为技术领导力.md.html">005 何为技术领导力</a>
</li>
<li>
<a href="/专栏/左耳听风/006 如何拥有技术领导力.md.html">006 如何拥有技术领导力</a>
</li>
<li>
<a href="/专栏/左耳听风/007 推荐阅读:每个程序员都该知道的事.md.html">007 推荐阅读:每个程序员都该知道的事</a>
</li>
<li>
<a href="/专栏/左耳听风/008 Go语言Docker和新技术.md.html">008 Go语言Docker和新技术</a>
</li>
<li>
<a href="/专栏/左耳听风/009 答疑解惑:渴望、热情和选择.md.html">009 答疑解惑:渴望、热情和选择</a>
</li>
<li>
<a href="/专栏/左耳听风/010 如何成为一个大家愿意追随的Leader.md.html">010 如何成为一个大家愿意追随的Leader</a>
</li>
<li>
<a href="/专栏/左耳听风/011 程序中的错误处理:错误返回码和异常捕捉.md.html">011 程序中的错误处理:错误返回码和异常捕捉</a>
</li>
<li>
<a href="/专栏/左耳听风/012 程序中的错误处理:异步编程和最佳实践.md.html">012 程序中的错误处理:异步编程和最佳实践</a>
</li>
<li>
<a href="/专栏/左耳听风/013 魔数 0x5f3759df.md.html">013 魔数 0x5f3759df</a>
</li>
<li>
<a href="/专栏/左耳听风/014 推荐阅读机器学习101.md.html">014 推荐阅读机器学习101</a>
</li>
<li>
<a href="/专栏/左耳听风/015 时间管理:同扭曲时间的事儿抗争.md.html">015 时间管理:同扭曲时间的事儿抗争</a>
</li>
<li>
<a href="/专栏/左耳听风/016 时间管理:投资赚取时间.md.html">016 时间管理:投资赚取时间</a>
</li>
<li>
<a href="/专栏/左耳听风/017 故障处理最佳实践:应对故障.md.html">017 故障处理最佳实践:应对故障</a>
</li>
<li>
<a href="/专栏/左耳听风/018 故障处理最佳实践:故障改进.md.html">018 故障处理最佳实践:故障改进</a>
</li>
<li>
<a href="/专栏/左耳听风/019 答疑解惑:我们应该能够识别的表象和本质.md.html">019 答疑解惑:我们应该能够识别的表象和本质</a>
</li>
<li>
<a href="/专栏/左耳听风/020 分布式系统架构的冰与火.md.html">020 分布式系统架构的冰与火</a>
</li>
<li>
<a href="/专栏/左耳听风/021 从亚马逊的实践,谈分布式系统的难点.md.html">021 从亚马逊的实践,谈分布式系统的难点</a>
</li>
<li>
<a href="/专栏/左耳听风/022 分布式系统的技术栈.md.html">022 分布式系统的技术栈</a>
</li>
<li>
<a href="/专栏/左耳听风/023 分布式系统关键技术:全栈监控.md.html">023 分布式系统关键技术:全栈监控</a>
</li>
<li>
<a href="/专栏/左耳听风/024 分布式系统关键技术:服务调度.md.html">024 分布式系统关键技术:服务调度</a>
</li>
<li>
<a href="/专栏/左耳听风/025 分布式系统关键技术:流量与数据调度.md.html">025 分布式系统关键技术:流量与数据调度</a>
</li>
<li>
<a href="/专栏/左耳听风/026 洞悉PaaS平台的本质.md.html">026 洞悉PaaS平台的本质</a>
</li>
<li>
<a href="/专栏/左耳听风/027 推荐阅读:分布式系统架构经典资料.md.html">027 推荐阅读:分布式系统架构经典资料</a>
</li>
<li>
<a href="/专栏/左耳听风/028 编程范式游记1- 起源.md.html">028 编程范式游记1- 起源</a>
</li>
<li>
<a href="/专栏/左耳听风/029 编程范式游记2- 泛型编程.md.html">029 编程范式游记2- 泛型编程</a>
</li>
<li>
<a href="/专栏/左耳听风/030 编程范式游记3 - 类型系统和泛型的本质.md.html">030 编程范式游记3 - 类型系统和泛型的本质</a>
</li>
<li>
<a href="/专栏/左耳听风/031 Git协同工作流你该怎样选.md.html">031 Git协同工作流你该怎样选</a>
</li>
<li>
<a href="/专栏/左耳听风/032 推荐阅读:分布式数据调度相关论文.md.html">032 推荐阅读:分布式数据调度相关论文</a>
</li>
<li>
<a href="/专栏/左耳听风/033 编程范式游记4- 函数式编程.md.html">033 编程范式游记4- 函数式编程</a>
</li>
<li>
<a href="/专栏/左耳听风/034 编程范式游记5- 修饰器模式.md.html">034 编程范式游记5- 修饰器模式</a>
</li>
<li>
<a href="/专栏/左耳听风/035 编程范式游记6- 面向对象编程.md.html">035 编程范式游记6- 面向对象编程</a>
</li>
<li>
<a href="/专栏/左耳听风/036 编程范式游记7- 基于原型的编程范式.md.html">036 编程范式游记7- 基于原型的编程范式</a>
</li>
<li>
<a href="/专栏/左耳听风/037 编程范式游记8- Go 语言的委托模式.md.html">037 编程范式游记8- Go 语言的委托模式</a>
</li>
<li>
<a href="/专栏/左耳听风/038 编程范式游记9- 编程的本质.md.html">038 编程范式游记9- 编程的本质</a>
</li>
<li>
<a href="/专栏/左耳听风/039 编程范式游记10- 逻辑编程范式.md.html">039 编程范式游记10- 逻辑编程范式</a>
</li>
<li>
<a href="/专栏/左耳听风/040 编程范式游记11- 程序世界里的编程范式.md.html">040 编程范式游记11- 程序世界里的编程范式</a>
</li>
<li>
<a href="/专栏/左耳听风/041 弹力设计篇之“认识故障和弹力设计”.md.html">041 弹力设计篇之“认识故障和弹力设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/042 弹力设计篇之“隔离设计”.md.html">042 弹力设计篇之“隔离设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/043 弹力设计篇之“异步通讯设计”.md.html">043 弹力设计篇之“异步通讯设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/044 弹力设计篇之“幂等性设计”.md.html">044 弹力设计篇之“幂等性设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/045 弹力设计篇之“服务的状态”.md.html">045 弹力设计篇之“服务的状态”</a>
</li>
<li>
<a href="/专栏/左耳听风/046 弹力设计篇之“补偿事务”.md.html">046 弹力设计篇之“补偿事务”</a>
</li>
<li>
<a href="/专栏/左耳听风/047 弹力设计篇之“重试设计”.md.html">047 弹力设计篇之“重试设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/048 弹力设计篇之“熔断设计”.md.html">048 弹力设计篇之“熔断设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/049 弹力设计篇之“限流设计”.md.html">049 弹力设计篇之“限流设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/050 弹力设计篇之“降级设计”.md.html">050 弹力设计篇之“降级设计”</a>
</li>
<li>
<a href="/专栏/左耳听风/051 弹力设计篇之“弹力设计总结”.md.html">051 弹力设计篇之“弹力设计总结”</a>
</li>
<li>
<a href="/专栏/左耳听风/052 区块链技术 - 区块链的革命性及技术概要.md.html">052 区块链技术 - 区块链的革命性及技术概要</a>
</li>
<li>
<a href="/专栏/左耳听风/053 区块链技术 - 区块链技术细节 - 哈希算法.md.html">053 区块链技术 - 区块链技术细节 - 哈希算法</a>
</li>
<li>
<a href="/专栏/左耳听风/054 区块链技术 - 区块链技术细节 - 加密和挖矿.md.html">054 区块链技术 - 区块链技术细节 - 加密和挖矿</a>
</li>
<li>
<a href="/专栏/左耳听风/055 区块链技术 - 去中心化的共识机制.md.html">055 区块链技术 - 去中心化的共识机制</a>
</li>
<li>
<a href="/专栏/左耳听风/056 区块链技术 - 智能合约.md.html">056 区块链技术 - 智能合约</a>
</li>
<li>
<a href="/专栏/左耳听风/057 区块链技术 - 传统金融和虚拟货币.md.html">057 区块链技术 - 传统金融和虚拟货币</a>
</li>
<li>
<a href="/专栏/左耳听风/058 管理设计篇之分布式锁.md.html">058 管理设计篇之分布式锁</a>
</li>
<li>
<a href="/专栏/左耳听风/059 管理设计篇之配置中心.md.html">059 管理设计篇之配置中心</a>
</li>
<li>
<a href="/专栏/左耳听风/060 管理设计篇之边车模式.md.html">060 管理设计篇之边车模式</a>
</li>
<li>
<a href="/专栏/左耳听风/061 管理设计篇之服务网格.md.html">061 管理设计篇之服务网格</a>
</li>
<li>
<a href="/专栏/左耳听风/062 管理设计篇之网关模式.md.html">062 管理设计篇之网关模式</a>
</li>
<li>
<a href="/专栏/左耳听风/063 管理设计篇之部署升级策略.md.html">063 管理设计篇之部署升级策略</a>
</li>
<li>
<a href="/专栏/左耳听风/064 性能设计篇之缓存.md.html">064 性能设计篇之缓存</a>
</li>
<li>
<a href="/专栏/左耳听风/065 性能设计篇之异步处理.md.html">065 性能设计篇之异步处理</a>
</li>
<li>
<a href="/专栏/左耳听风/066 性能设计篇之数据库扩展.md.html">066 性能设计篇之数据库扩展</a>
</li>
<li>
<a href="/专栏/左耳听风/067 性能设计篇之秒杀.md.html">067 性能设计篇之秒杀</a>
</li>
<li>
<a href="/专栏/左耳听风/068 性能设计篇之边缘计算.md.html">068 性能设计篇之边缘计算</a>
</li>
<li>
<a href="/专栏/左耳听风/069 程序员练级攻略2018开篇词.md.html">069 程序员练级攻略2018开篇词</a>
</li>
<li>
<a href="/专栏/左耳听风/070 程序员练级攻略2018零基础启蒙.md.html">070 程序员练级攻略2018零基础启蒙</a>
</li>
<li>
<a href="/专栏/左耳听风/071 程序员练级攻略2018正式入门.md.html">071 程序员练级攻略2018正式入门</a>
</li>
<li>
<a href="/专栏/左耳听风/072 程序员练级攻略2018程序员修养.md.html">072 程序员练级攻略2018程序员修养</a>
</li>
<li>
<a href="/专栏/左耳听风/073 程序员练级攻略2018编程语言.md.html">073 程序员练级攻略2018编程语言</a>
</li>
<li>
<a href="/专栏/左耳听风/074 程序员练级攻略:理论学科.md.html">074 程序员练级攻略:理论学科</a>
</li>
<li>
<a href="/专栏/左耳听风/075 程序员练级攻略2018系统知识.md.html">075 程序员练级攻略2018系统知识</a>
</li>
<li>
<a href="/专栏/左耳听风/076 程序员练级攻略2018软件设计.md.html">076 程序员练级攻略2018软件设计</a>
</li>
<li>
<a href="/专栏/左耳听风/077 程序员练级攻略2018Linux系统、内存和网络.md.html">077 程序员练级攻略2018Linux系统、内存和网络</a>
</li>
<li>
<a href="/专栏/左耳听风/078 程序员练级攻略2018异步IO模型和Lock-Free编程.md.html">078 程序员练级攻略2018异步IO模型和Lock-Free编程</a>
</li>
<li>
<a href="/专栏/左耳听风/079 程序员练级攻略2018Java底层知识.md.html">079 程序员练级攻略2018Java底层知识</a>
</li>
<li>
<a href="/专栏/左耳听风/080 程序员练级攻略2018数据库.md.html">080 程序员练级攻略2018数据库</a>
</li>
<li>
<a href="/专栏/左耳听风/081 程序员练级攻略2018分布式架构入门.md.html">081 程序员练级攻略2018分布式架构入门</a>
</li>
<li>
<a href="/专栏/左耳听风/082 程序员练级攻略2018分布式架构经典图书和论文.md.html">082 程序员练级攻略2018分布式架构经典图书和论文</a>
</li>
<li>
<a href="/专栏/左耳听风/083 程序员练级攻略2018分布式架构工程设计.md.html">083 程序员练级攻略2018分布式架构工程设计</a>
</li>
<li>
<a href="/专栏/左耳听风/084 程序员练级攻略2018微服务.md.html">084 程序员练级攻略2018微服务</a>
</li>
<li>
<a class="current-tab" href="/专栏/左耳听风/085 程序员练级攻略2018容器化和自动化运维.md.html">085 程序员练级攻略2018容器化和自动化运维</a>
</li>
<li>
<a href="/专栏/左耳听风/086 程序员练级攻略2018机器学习和人工智能.md.html">086 程序员练级攻略2018机器学习和人工智能</a>
</li>
<li>
<a href="/专栏/左耳听风/087 程序员练级攻略2018前端基础和底层原理.md.html">087 程序员练级攻略2018前端基础和底层原理</a>
</li>
<li>
<a href="/专栏/左耳听风/088 程序员练级攻略2018前端性能优化和框架.md.html">088 程序员练级攻略2018前端性能优化和框架</a>
</li>
<li>
<a href="/专栏/左耳听风/089 程序员练级攻略2018UIUX设计.md.html">089 程序员练级攻略2018UIUX设计</a>
</li>
<li>
<a href="/专栏/左耳听风/090 程序员练级攻略2018技术资源集散地.md.html">090 程序员练级攻略2018技术资源集散地</a>
</li>
<li>
<a href="/专栏/左耳听风/091 程序员面试攻略:面试前的准备.md.html">091 程序员面试攻略:面试前的准备</a>
</li>
<li>
<a href="/专栏/左耳听风/092 程序员面试攻略:面试中的技巧.md.html">092 程序员面试攻略:面试中的技巧</a>
</li>
<li>
<a href="/专栏/左耳听风/093 程序员面试攻略:面试风格.md.html">093 程序员面试攻略:面试风格</a>
</li>
<li>
<a href="/专栏/左耳听风/094 程序员面试攻略:实力才是王中王.md.html">094 程序员面试攻略:实力才是王中王</a>
</li>
<li>
<a href="/专栏/左耳听风/095 高效学习:端正学习态度.md.html">095 高效学习:端正学习态度</a>
</li>
<li>
<a href="/专栏/左耳听风/096 高效学习:源头、原理和知识地图.md.html">096 高效学习:源头、原理和知识地图</a>
</li>
<li>
<a href="/专栏/左耳听风/097 高效学习:深度,归纳和坚持实践.md.html">097 高效学习:深度,归纳和坚持实践</a>
</li>
<li>
<a href="/专栏/左耳听风/098 高效学习:如何学习和阅读代码.md.html">098 高效学习:如何学习和阅读代码</a>
</li>
<li>
<a href="/专栏/左耳听风/099 高效学习:面对枯燥和量大的知识.md.html">099 高效学习:面对枯燥和量大的知识</a>
</li>
<li>
<a href="/专栏/左耳听风/100 高效沟通Talk和Code同等重要.md.html">100 高效沟通Talk和Code同等重要</a>
</li>
<li>
<a href="/专栏/左耳听风/101 高效沟通:沟通阻碍和应对方法.md.html">101 高效沟通:沟通阻碍和应对方法</a>
</li>
<li>
<a href="/专栏/左耳听风/102 高效沟通:沟通方式及技巧.md.html">102 高效沟通:沟通方式及技巧</a>
</li>
<li>
<a href="/专栏/左耳听风/103 高效沟通:沟通技术.md.html">103 高效沟通:沟通技术</a>
</li>
<li>
<a href="/专栏/左耳听风/104 高效沟通:好老板要善于提问.md.html">104 高效沟通:好老板要善于提问</a>
</li>
<li>
<a href="/专栏/左耳听风/105 高效沟通:好好说话的艺术.md.html">105 高效沟通:好好说话的艺术</a>
</li>
<li>
<a href="/专栏/左耳听风/106 加餐 谈谈我的“三观”.md.html">106 加餐 谈谈我的“三观”</a>
</li>
<li>
<a href="/专栏/左耳听风/107 结束语 业精于勤,行成于思.md.html">107 结束语 业精于勤,行成于思</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content" style="max-width: 960px; margin: 0 auto;
overflow-x: auto;
overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><h1>085 程序员练级攻略2018容器化和自动化运维</h1>
<p>这篇文章重点学习 Docker 和 Kubernetes它们已经是分布式架构和自动化运维的必需品了也是你必需要学习的。对于这两个东西你千万不要害怕因为技术方面都不算复杂只是它们的玩法和传统运维不一样所以你不用担心只要你花上一点时间一定会学好的。</p>
<h1>Docker</h1>
<ul>
<li>你可以先看一下 Docker 的官方介绍 <a href="https://docs.docker.com/engine/docker-overview/">Docker Overview</a></li>
<li>然后再去一个 Web 在线的 Playground 上体验一下, <a href="https://www.katacoda.com/courses/docker/playground">Katacoda Docker Playground</a> 或者是 <a href="https://training.play-with-docker.com/">Play With Docker</a></li>
<li>接下来,跟着 <a href="https://github.com/dwyl/learn-docker">Learn Docker</a> 这个文档中的教程自己安装一个 Docker 的环境,实操一把。</li>
<li>然后跟着 <a href="https://docker-curriculum.com/">Docker Curriculum</a> 这个超详细的教程玩一下 Docker。</li>
</ul>
<p>有了上述的一些感性体会之后,你就可以阅读 Docker 官方文档 <a href="https://docs.docker.com/">Docker Documentation</a> 了,这是学习 Docker 最好的方式。</p>
<p>如果你想了解一下 Docker 的底层技术细节,你可以参看我的文章。</p>
<ul>
<li><a href="https://coolshell.cn/articles/17010.html">Docker 基础技术Linux Namespace</a></li>
<li><a href="https://coolshell.cn/articles/17029.html">Docker 基础技术Linux Namespace</a></li>
<li><a href="https://coolshell.cn/articles/17049.html">Docker 基础技术Cgroup</a></li>
<li><a href="https://coolshell.cn/articles/17061.html">Docker 基础技术AUFS</a></li>
<li><a href="https://coolshell.cn/articles/17200.html">Docker 基础技术DeviceMapper</a></li>
</ul>
<p>还有一些不错的与 Docker 网络有关的文章你需要阅读及实践一下。</p>
<ul>
<li><a href="https://jvns.ca/blog/2016/12/22/container-networking/">A container networking overview</a></li>
<li><a href="http://www.dasblinkenlichten.com/docker-networking-101-user-defined-networks/">Docker networking 101 - User defined networks</a></li>
<li><a href="http://www.dasblinkenlichten.com/understanding-cni-container-networking-interface/">Understanding CNI (Container Networking Interface)</a></li>
<li><a href="http://www.dasblinkenlichten.com/using-cni-docker/">Using CNI with Docker</a></li>
</ul>
<p>Docker 有下面几种网络解决方案:<a href="https://www.projectcalico.org/getting-started/docker/">Calico</a><a href="https://github.com/coreos/flannel/">Flannel</a><a href="https://github.com/weaveworks/weave">Weave</a> ,你需要学习一下。另外,还需要学习一下 <a href="https://github.com/nicolaka/netshoot">netshoot</a> 。这是一个很不错的用来诊断 Docker 网络问题的工具集。</p>
<p>关于这几个容器网络解决方案的性能对比,你可以看一下下面这几篇文章或报告。</p>
<ul>
<li><a href="http://chunqi.li/2015/11/15/Battlefield-Calico-Flannel-Weave-and-Docker-Overlay-Network/">Battlefield: Calico, Flannel, Weave and Docker Overlay Network</a></li>
<li><a href="https://machinezone.github.io/research/networking-solutions-for-kubernetes/">Comparison of Networking Solutions for Kubernetes</a></li>
<li><a href="http://www.delaat.net/rp/2015-2016/p50/report.pdf">Docker Overlay Networks: Performance analysis in high-latency enviroments</a></li>
</ul>
<p>如果你对 Docker 的性能有什么问题的话,你可以看一下下面这些文章。</p>
<ul>
<li><a href="https://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf">IBM Research Report: An Updated Performance Comparison of Virtual Machines and Linux Containers</a></li>
<li><a href="http://paper.ijcsns.org/07_book/201703/20170327.pdf">An Introduction to Docker and Analysis of its Performance</a></li>
</ul>
<p>下面是一些和存储相关的文章。</p>
<ul>
<li><a href="https://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker-network-and.html">Storage Concepts in Docker: Network and Cloud Storage</a></li>
<li><a href="https://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker-persistent.html">Storage Concepts in Docker: Persistent Storage</a></li>
<li><a href="https://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker.html">Storage Concepts in Docker: Shared Storage and the VOLUME directive</a></li>
</ul>
<p>然后是跟运维相关的文章。</p>
<ul>
<li><a href="https://logz.io/learn/docker-monitoring-elk-stack/">Docker Monitoring with the ELK Stack: A Step-by-Step Guide</a></li>
</ul>
<p>最后,推荐看看 <a href="http://www.nkode.io/2014/08/24/valuable-docker-links.html">Valuable Docker Links</a> ,其中收集并罗列了一系列非常不错的 Docker 文章。</p>
<p><strong>最佳实践</strong></p>
<p>下面分享一些与 Docker 相关的最佳实践。</p>
<ul>
<li><a href="https://docs.docker.com/develop/develop-images/dockerfile_best-practices/">Best Practices for Dockerfile</a> Docker 官方文档里的 Dockerfile 的最佳实践。</li>
<li><a href="https://github.com/FuriKuri/docker-best-practices">Docker Best Practices</a> ,这里收集汇总了存在于各个地方的使用 Docker 的建议和实践。</li>
<li><a href="http://docs.projectatomic.io/container-best-practices/">Container Best Practices</a> ,来自 Atomic 项目,是一个介绍容器化应用程序的架构、创建和管理的协作型文档项目。</li>
<li><a href="http://hokstad.com/docker/patterns">Eight Docker Development Patterns</a> ,八个 Docker 的开发模式:共享基础容器、共享同一个卷的多个开发容器、开发工具专用容器、测试环境容器、编译构建容器、防手误的安装容器、默认服务容器、胶黏容器。</li>
</ul>
<h1>Kubernetes</h1>
<p>Kubernetes 是 Google 开源的容器集群管理系统,是 Google 多年大规模容器管理技术 Borg 的开源版本,也是 CNCF 最重要的项目之一,主要功能包括:</p>
<ul>
<li>基于容器的应用部署、维护和滚动升级;</li>
<li>负载均衡和服务发现;</li>
<li>跨机器和跨地区的集群调度;</li>
<li>自动伸缩;</li>
<li>无状态服务和有状态服务;</li>
<li>广泛的 Volume 支持;</li>
<li>插件机制保证扩展性。</li>
</ul>
<p>Kubernetes 发展非常迅速,已经成为容器编排领域的领导者。</p>
<p>首先,我推荐你阅读 Kubernetes 前世今生的一篇论文。</p>
<ul>
<li><a href="https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/44843.pdf">Borg, Omega, and Kubernetes</a> ,看看 Google 这十几年来从这三个容器管理系统中得到的经验教训。</li>
</ul>
<p>学习 kubernetes有两个免费的开源电子书。</p>
<ul>
<li><a href="https://jimmysong.io/kubernetes-handbook/">Kubernetes Handbook</a>》,这本书记录了作者从零开始学习和使用 Kubernetes 的心路历程,着重于经验分享和总结,同时也会有相关的概念解析。希望能够帮助你少踩坑,少走弯路,还会指引你关注 kubernetes 生态周边如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native 等领域。</li>
<li><a href="https://kubernetes.feisky.xyz/zh/">Kubernetes 指南</a>》,这本书旨在整理平时在开发和使用 Kubernetes 时的参考指南和实践总结,形成一个系统化的参考指南以方便查阅。</li>
</ul>
<p>这两本电子书都不错,前者更像是一本学习教程,而且面明显广一些,还包括 Cloud Natvie、Service Mesh 以及微服务相关的东西。而后者聚焦于 Kubernetes 本身,更像一本参考书。</p>
<p>但是也别忘了 Kubernetes 的官方网站:<a href="https://kubernetes.io/">Kubernetes.io</a>,上面不但有<a href="https://kubernetes.io/docs/home/">全面的文档</a> ,也包括一个很不错的 <a href="https://kubernetes.io/docs/tutorials/kubernetes-basics/">官方教程</a></p>
<p>此外,还有一些交互式教程,帮助你理解掌握,以及一些很不错的文章推荐你阅读。</p>
<p><strong>一些交互式教程</strong></p>
<ul>
<li><a href="https://www.katacoda.com/courses/kubernetes">Katacoda</a></li>
<li><a href="https://kubernetesbootcamp.github.io/kubernetes-bootcamp/">Kubernetes Bootcamp</a></li>
</ul>
<p><strong>一些文章</strong></p>
<p>这里还有一些不错的文档,你应该去读一下。</p>
<ul>
<li><a href="https://opsnotice.xyz/kubernetes-tips-tricks/">Kubernetes tips &amp; tricks</a></li>
<li><a href="http://theremotelab.com/blog/achieving-ci-cd-with-k8s/">Achieving CI/CD with Kubernetes</a></li>
<li><a href="https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet">How to Set Up Scalable Jenkins on Top of a Kubernetes Cluster</a></li>
<li>10 Most Common Reasons Kubernetes Deployments Fail <a href="https://kukulinski.com/10-most-common-reasons-kubernetes-deployments-fail-part-1/">Part I</a><a href="https://kukulinski.com/10-most-common-reasons-kubernetes-deployments-fail-part-2/">Part II</a></li>
<li><a href="https://sysdig.com/blog/monitoring-kubernetes-with-sysdig-cloud/">How to Monitor Kubernetes</a> ,一共有 4 个篇章</li>
<li><a href="http://www.dasblinkenlichten.com/logging-in-kubernetes-with-fluentd-and-elasticsearch/">Logging in Kubernetes with Fluentd and Elasticsearch</a></li>
<li><a href="https://dzone.com/articles/kubernetes-monitoring-best-practices-methods-and-e">Kubernetes Monitoring: Best Practices, Methods, and Existing Solutions</a></li>
</ul>
<p><strong>网络相关的文章</strong></p>
<p>要学习 Kubernetes你只需要读一下下面这个 Kubernetes 101 系列的文章。</p>
<ul>
<li><a href="http://www.dasblinkenlichten.com/kubernetes-101-networking/">Kubernetes 101 - Networking</a></li>
<li><a href="http://www.dasblinkenlichten.com/kubernetes-networking-101-pods/">Kubernetes networking 101 - Pods</a></li>
<li><a href="http://www.dasblinkenlichten.com/kubernetes-networking-101-services/">Kubernetes networking 101 - Services</a></li>
<li><a href="http://www.dasblinkenlichten.com/kubernetes-networking-101-basic-external-access-into-the-cluster/">Kubernetes networking 101 - (Basic) External access into the cluster</a></li>
<li><a href="http://www.dasblinkenlichten.com/kubernetes-networking-101-ingress-resources/">Kubernetes Networking 101 - Ingress resources</a></li>
<li><a href="http://www.dasblinkenlichten.com/getting-started-with-calico-on-kubernetes/">Getting started with Calico on Kubernetes</a></li>
</ul>
<p><strong>CI/CD 相关的文章</strong></p>
<ul>
<li><a href="https://cloud.google.com/solutions/automated-build-images-with-jenkins-kubernetes#kubernetes_architecture">Automated Image Builds with Jenkins, Packer, and Kubernetes</a></li>
<li><a href="https://iocanel.blogspot.in/2015/09/jenkins-setups-for-kubernetes-and.html">Jenkins setups for Kubernetes and Docker Workflow</a></li>
<li><a href="https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes">Lab: Build a Continuous Deployment Pipeline with Jenkins and Kubernetes</a></li>
</ul>
<p><strong>最佳实践</strong></p>
<ul>
<li><a href="https://medium.com/@sachin.arote1/kubernetes-best-practices-9b1435a4cb53">Kubernetes Best Practices</a> by <a href="https://medium.com/@sachin.arote1?source=post_header_lockup">Sachin Arote</a> AWS 工程师总结的最佳实践。</li>
<li><a href="https://speakerdeck.com/thesandlord/kubernetes-best-practices">Kubernetes Best Practices</a> by <a href="https://github.com/thesandlord">Sandeep Dinesh</a> Google 云平台工程师总结的最佳实践。</li>
</ul>
<p><strong>Docker 和 Kubernetes 资源汇总</strong></p>
<p>下面是 Github 上和 Docker &amp; Kubernetes 相关的 Awesome 系列。</p>
<ul>
<li><a href="https://github.com/veggiemonk/awesome-docker">Awesome Docker</a></li>
<li><a href="https://github.com/ramitsurana/awesome-kubernetes">Awesome Kubernetes</a></li>
</ul>
<p>虽然上面的这些系列非常全的罗列了很多资源,但是我觉得很不系统。对于系统的说明 Docker 和 Kubernetes 生态圈,我非常推荐大家看一下 The New Stack 为 Kubernetes 出的一系列的电子书或报告。</p>
<ul>
<li><a href="http://thenewstack.io/ebookseries/">The New Stack eBook Series</a> ,非常完整和详实的 Docker 和 Kubernetes 生态圈的所有东西。
<ul>
<li>Book 01: <a href="https://thenewstack.io/ebooks/docker-and-containers/the-docker-container-ecosystem/">The Docker Container Ecosystem</a></li>
<li>Book 02: <a href="https://thenewstack.io/ebooks/docker-and-containers/applications-microservices-docker-containers/">Applications &amp; Microservices with Docker &amp; Containers</a></li>
<li>Book 03: <a href="https://thenewstack.io/ebooks/docker-and-containers/automation-orchestration-docker-containers/">Automation &amp; Orchestration with Docker &amp; Containers</a></li>
<li>Book 04: <a href="https://thenewstack.io/ebooks/docker-and-containers/networking-security-storage-docker-containers/">Network, Security &amp; Storage with Docker &amp; Containers</a></li>
<li>Book 05: <a href="https://thenewstack.io/ebooks/docker-and-containers/monitoring-management-docker-containers/">Monitoring &amp; Management with Docker &amp; Containers</a></li>
<li>Book 06: <a href="https://thenewstack.io/ebooks/use-cases/use-cases-for-kubernetes/">Use Cases for Kubernetes</a></li>
<li>Book 07: <a href="https://thenewstack.io/ebooks/kubernetes/state-of-kubernetes-ecosystem/">State of the Kubernetes Ecosystem</a></li>
<li>Book 08: <a href="https://thenewstack.io/ebooks/kubernetes/kubernetes-deployment-and-security-patterns/">Kubernetes Deployment &amp; Security Patterns</a></li>
<li>Book 09: <a href="https://thenewstack.io/ebooks/kubernetes/ci-cd-with-kubernetes/">CI/CD with Kubernetes</a></li>
<li>Book 10: <a href="https://thenewstack.io/ebooks/kubernetes/kubernetes-solutions-directory/">Kubernetes solutions Directory</a></li>
<li>Book 11: <a href="https://thenewstack.io/ebooks/microservices/cloud-native-microservices-2018/">Guid to Cloud-Native Microservices</a></li>
</ul>
</li>
</ul>
<h1>小结</h1>
<p>总结一下今天的内容。Docker 和 Kubernetes 已经成为分布式架构和自动化运维方面的不可或缺的两大基本构成,是你必需要学习的。虽然它们的玩法跟传统运维不一样,但技术方面并不算复杂,只要你花上一点时间,一定会学好的。</p>
<p>在这篇文章中,我推荐了 Docker 和 Kubernetes 基础技术方面的学习资料并给出了存储、运维、网络、CI/CD 等多方面的资料,同时列出了与之相关的最佳实践。相信认真学习和消化这些知识,你一定可以掌握 Docker 和 Kubernetes 两大利器。</p>
<p>下篇文章,我们将学习机器学习和人工智能方面的内容。敬请期待。</p>
</div>
</div>
<div>
<div style="float: left">
<a href="/专栏/左耳听风/084 程序员练级攻略2018微服务.md.html">上一页</a>
</div>
<div style="float: right">
<a href="/专栏/左耳听风/086 程序员练级攻略2018机器学习和人工智能.md.html">下一页</a>
</div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"709978987ad93cfa","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}' crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>