博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
膜拜!阿里内部都在强推的K8S(kubernetes)学习指南,不能再详细了
阅读量:2144 次
发布时间:2019-04-30

本文共 2536 字,大约阅读时间需要 8 分钟。

为什么要有Kubernetes(K8S)?

有了Docker、Docker-Compose,且Docker、Docker-Compose操作起来也不复杂,为什么还要来一个Kubernetes?

的确,有了Docker、Docker-Compose的确是方便了运维的部署,直接几条命令就可以启动起来一个环境了,在加个Volume修改对应的配置文件,就可以实现大部分的环境部署需求。

问题在于,如果此时服务器的性能不够用了,怎么办?

加硬件,在学过分布式思想时,都知道到了某种程度,加机器比在一台机器上堆硬件还要便宜,且堆硬件的问题还在于服务器的硬件接口够不够,如果插槽不够就更悲催了。

所以现在的主流方案都是采用加机器,横向扩展,在加了机器的情况下,这个时候要把应用的环境全部拷贝一份过去就算了,问题在于怎么去管理整个集群,或者说怎么去管理整个已经进行了容器化的集群,性能怎么去平衡?

有的可能会想既然拷贝过去了,那就前置一个Nginx,修改Nginx的配置文件,在加一台机器的配置信息就好了,流量就会平衡过去了。那么又有个问题,如果出现了资源倾斜了怎么办?

在以上的种种问题下,我们需要一个能够帮助我们去管理这个集群的工具,而且这个工具能够帮助我们去协调好各个机器的。

目前业界最火的就是Kubernetes。

在这里分享我偶然间得到的一份文档,该文档将K8S分为理论和实践两个部分进行讲解,双管齐下,事半功倍,让我们来看看文档内容

理论篇

理解集群控制器

统一入口
控制器管理器
控制器管理器
SharedInformer
ListWatcher
服务控制器
路由控制器

集群网络详解

集群网络搭建:初始阶段 集群阶段 节点阶段 Pod阶段

通信

在这里插入图片描述

集群伸缩原理

节点增加原理

手动添加已有节点
自动添加已有节点
!/bin/bash
集群扩容
自动伸缩
节点减少原理

认证与调度

在这节中,我们以一个简单的容器化web程序为例,着重分析了客户端怎么样通过Kubernetes集群API Server认证,以及容器应用怎么样被分派到合适节点这两件事情。

“关在笼子里”的程序

双向数字证书验证
KubeConfig文件
Pod配置

集群服务的三个要点和一种实现

以我的经验来讲,理解K8S集群服务的概念,是比较不容易的一件事情。尤其是当我们基于似是而非的理解,去排查服务相关问题的时候,会非常不顺利。

这体现在,对于新手来说,ping不通服务的IP地址这样基础的问题,都很难理解;而就算对经验很丰富的工程师来说,看懂服务相关的iptables配置,也是相当的挑战。

K8S集群服务的本质是什么

自带通信员
把服务照进现实
一种实现
用自定义链实现服务的反向代理

镜像拉取这件小事

导读:相比 K8s 集群的其他功能,私有镜像的自动拉取,看起来可能是比较简单的。而镜像拉取失败,大多数情况下都和权限有关。所以,在处理相关问题的时候,我们往往会轻松的说:这问题很简单,肯定是权限问题。但实际的情况是,我们经常为一个问题,花了多个人的时间却找不到原因。这主要还是我们对镜像拉取,特别是私有镜像自动拉取的原理理解不深。这篇文章,作者将带领大家讨论下相关原理。

顺序上来说,私有镜像自动拉取会首先通过阿里云 Acr credential helper 组件,再经过 K8s 集群的 API Server 和 kubelet 组件,最后到 docker 容器运行时。但是我的叙述,会从后往前,从最基本的 docker 镜像拉取说起。

镜像拉取这件小事

理解 OAuth 2.0 协议
Docker 扮演的角色
K8s 实现的私有镜像自动拉取
阿里云实现的 Acr credential helper

实践

读懂这一篇,集群节点不下线

需要知道的Kubernetes知识

什么是PLEG
容器runtime
Docker Daemon调用栈分析
Containerd调用栈分析
什么是Dbus
RunC请求Dbus
Systemd
Live Debugging
问题修复

节点下线姊妹篇

问题现象

大逻辑
就绪三分钟
止步不前的 PLEG
无响应的 Terwayd

我们为什么会删除不了集群的命名空间?

Controller在做什么?

从集群入口开始
再次回到集群入口
节点与Pod之间的通信
Route Controller为什么不工作?
集群节点访问云资源
问题大图

阿里云ACK产品安全组配置管理

安全组在ACK产品中扮演的角色

安全组与ACK集群网络
怎么样管理ACK集群的安全组规则
IDC与集群互访
使用多个安全组管理集群节点
使用新的安全组管理节点
典型问题与解决方案
限制集群访问公网或者运营级NAT保留地址
容器组跨节点通信异常

二分之一活的微服务

二分之一活的微服务

绕不过去的大图
代理与代理的生命周期管理
就绪检查的实现
控制面和数据面
简单的原因

半夜两点Ca证书过期问题处理惨况总结

不断重启的Citadel

一般意义上的证书验证
Citadel证书体系

以上就是这份文档的概况,一次搞懂6个核心原理吃透基础理论,学会6个典型问题的华丽操作,不管是架构师还是开发者,又或是运维,都能够从中学到不少。

以上的文档已整理成册

最后:

我们身为技术人员,最怕的就是安于现状,一直在原地踏步,那么你可能在30岁就会迎来自己的职业危机,因为你工作这么久提升的只有自己的年龄,技术还是万年不变!

我知道,对于一些学历没有优势的人来说,外包是别无选择,但是未来的路究竟要怎么走,取决你的步子迈多开。每个人都有自己的选择,如果你喜欢稳定,那按部就班适合你,但你有想法,不甘平庸,那就别让外包埋没了你。

如果你想在未来能够自我突破,圆梦大厂,那或许以上这份学习资料,你需要阅读阅读,希望能够对你的职业发展有所帮助。

最后,希望未来的我发展顺利,早日拿下p7!同样,也祝愿你实现自己的人生理想,愿我们都越来越好,共勉!

获取方式: 只需你**点赞+关注后,:714827309** 哦-!

获取方式: 只需你点赞+关注后,Java进阶交流群:714827309 进群拿资料哦-!

转载地址:http://ryegf.baihongyu.com/

你可能感兴趣的文章
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>