Kubernetes(k8s)-技能图谱(总结篇)

34 阅读8分钟

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。

我们Kubernetes讲到现在已经讲了80+小节,当然这些内容并没有包含所有的内容,这些也是我相对比较熟悉的内容,所以我这里做一个简单的总结。

基本概念&安装集群

1.基本概念,主要介绍使用比较多的概念,比如Pod,Service等。

2.安装Docker版本,这个属于早期使用较多的版本。

3.安装Containerd版本,新版本只支持Containerd,调用链上减少一环。

4.生产高可用方案,多节点,高可用,证书100年。

资源&工作负载

1.Pod介绍,介绍什么是Pod,Pod和容器之间的关系。

2.静态Pod,介绍了一种特殊的Pod,以及应用场景。

3.Master节点,介绍了Master上运行的组件及功能。

4.Node节点,介绍了Node上运行的组件及功能。

5.ReplicaSets介绍,介绍它的操作方法和用途。

6.Deployment介绍,Kubernetes里面使用最多的工作负载,绝大部分业务都是以此形式存在。

7.DaemonSet介绍,介绍守护进程主要部署方式和功能。

8.StatefulSet介绍,有状态组件常用的部署方式及应用场景。

安全&配置

1.ConfigMap介绍,介绍了ConfigMap资源特性。

2.ConfigMap案例,介绍了ConfigMap在实际环境中挂载配置文件方式使用ConfigMap。

3.Secret介绍,介绍Secret和ConfigMap区别,Secret主要是密文形式。

4.Secret案例,介绍一个真实案例,用于存储Docker仓库的账号和密码。

资源&性能

1.HealthCheck介绍,介绍健康检查的几种形式和功能。

2.HealthCheck案例,介绍了一个真实环境的健康检查的案例,用于提高服务的健壮性。

3.资源限制Limit和资源请求Request,介绍了Limit在于Cgroup的实现,和Request在调度里面的作用。

服务&访问形式

1.Service基本介绍,介绍Service的实现原理和其负载均衡的作用。

2.其他类型的服务,NodePort,Loadbalance,headless service,介绍其他几种不同类型的服务,在不同时候的用处。

3.服务(Service)流量走向,介绍我们的流量是如何通过Iptables转发到实际Pod。

4.externalTrafficPolicy介绍,介绍了我们的特殊类型的服务,实现不同的负载后端和保留源IP地址。

5.Ingress介绍和安装,介绍一种特殊的流量入口,通过使用域名转发7层协议实现统一入口管理。

6.Ingress案例,介绍一个真实的案例,把一个虚拟域名转发到后端指定的Pod里面。

7.CoreDNS介绍(一),介绍了内部域名解析流程。

8.CoreDNS介绍(二),介绍了内部域名的服务器全称和服务简写。

Helm

1.Helm介绍和安装,这里介绍了一个类似Yum源的安装软件的部署方式和安装实现。

2.Helm的部署具体应用,介绍了一个使用Helm部署一个真实服务Redis的情况。

3.Helm的内部逻辑,介绍了Helm内部实现逻辑和修改方式。

存储

1.PV和PVC介绍,介绍在Kubernetes里面多种存储方案及抽象出来的2个概念:PersistentVolume(PV)和PersistentVolumeClaim(PVC)。

2.PV和PVC案例,介绍了通过PV和PVC来抽象出来磁盘挂载,把存储和应用之间进行解耦。

3.StorageClass介绍,通过StorageClass实现自动管理存储,避免前面需要手动创建PV和PVC的情况。

4.StorageClass案例,介绍了一个使用NFS作为后端StorageClass存储,来提供给应用使用。

任务

1.Job,介绍了一次性任务的原理和使用案例。

2.CronJob,介绍了可循环使用的任务的配置方式和逻辑。

3.InitContainers,介绍了初始化容器的使用方式和使用地方。

调度

1.调度Scheduler介绍,介绍Kubernetes在Pod调度里面的几种算法:预选和优选,然后进行打分的过程。

2.标签label和nodeSelector介绍,介绍如何通过标签实现让Pod调度到指定的节点。

3.污点Taints和容忍Tolerations,介绍如何让Node拒绝Pod和让Pod可以忽略Node的拒绝。

4.Node亲和性和反亲和性,一种更灵活的调度方式,可以规避掉nodeSelector太强制的问题。

5.Pod亲和性和反亲和性,可以确保Pod可以和谁在一起和不能和谁在一起的问题,提高了Pod的健壮性。

证书和权限

1.证书介绍,介绍了Kubernetes里面所涉及到的证书,签发关系和时间问题。

2.证书续期,介绍如何通过命令对Kubernetes涉及到的证书进行续期。

3.永久证书(100年),介绍通过修改kubeadm源码,实现创建集群的证书都是永久(100年)的,这样可以规避掉由于证书过期而引发的问题。

4.ServiceAccount,介绍在Pod内部如何定义权限,让Pod具有访问Kube-apiserver的能力。

5.UserAccount,介绍如何创建一个用于集群外部访问集群的证书,从而达到权限控制的能力。

维护Kubernetes集群

1.隔离Cordon和驱逐Drain,介绍如何更优雅,对业务的影响最小的服务器维护方式。

2.服务质量QoS,介绍如何QoS作用和如何根据业务的重要程度配置合适的QoS策略。

3.log和exec逻辑,介绍在管理维护Pod常用的2个参数实现原理和可能容易出问题的地方。

4.Pod创建流程,介绍了Pod的生命周期以及当我们创建Pod的时候内部逻辑是如何走向的。

5.Pod状态,介绍Pod各个状态以及如何查看具体的事件,从而可以进行更快的处理方式。

6.Node状态,介绍Node的状态变化,从而更好的解决问题。

7.注解Annotations,介绍了注解的功能和主要作用。

8.Reloader介绍和使用,介绍如何使用注解功能,实现我们业务的自动重启功能。

9.命名空间NameSpace,介绍了Kubernetes里面的资源隔离形式和资源限制方式来实现集群更好的维护。

10.集群日志,介绍核心管控组件调整日志级别的功能,通过日志我们可以分析更加容易找到问题故障原因。

11.备份和Etcd介绍,如何对Kubernetes里面的资源进行备份的两种方式。

12. kubectl常用命令,对前面应用到的命令进行了一个总结。

13.Dashboard,介绍仪表板的安装和主要功能。

14.配置COS存储,介绍如何把Docker仓库和腾讯的对象存储进行对接,从而实现后端存储的高可用。

15.自动扩缩容HPA,如何通过监控组件,实现Pod自动扩缩容,从而应对突然而来的流量高峰。

16.故障检查和故障自愈NPD,引入了一种新的故障检查和故障恢复的能力。

网络插件

1.CNI介绍,介绍Kubernetes通过CNI插件实现网络和集群配置解耦,让我们可以选择适合自己的网络插件。

2.Flannel插件,一种最简单的网络插件的原理和通信方式。

3.Calico介绍,另外一种相对复杂,但是有更多功能的网络插件。

服务目录和CRD

1.服务目录(ServiceCatalog)介绍一,介绍了早期Kubernetes里面引用第三方资源的方式。

2.服务目录(ServiceCatalog)介绍二,介绍ServiceCatalog里面的涉及到的多个概念。

3.自定义资源CRD,介绍自定义资源的原理和实现方式。

4.Operator,介绍CRD的具体实现,并且也是当前使用Kubernetes集群使用中间件的趋势。

5.Mariadb-Opetator,一个可以用于生产环境的数据库案例:有单机版和集群版。

6.ZooKeeper-Opterator,另外一个可以用于生产环境的案例。

监控

1.监控介绍Promethues,从早期的监控到云原生的监控,Prometheus已经是事实上的标准。

2.Prometheus安装,通过Helm安装Prometheus-Opterator,然后实现Prometheus及附属组件的安装。

3.Prometheus监控项目,介绍了Prometheus默认的监控项目和接入第三方监控的方法。

4.图形化监控Grafana,自带的Grafana的介绍和导入自定义图表的方式。

KubeVirt

1.KubeVirt介绍和安装,介绍了一种特殊的需求,在Pod里面跑虚拟机的部署方式。

2.构建自己Pod虚拟机镜像,如何把自己的业务封装在虚拟机里面,并使用Kubernetes来调度。

其他

1.SiderCar模式和ServiceMesh

2.服务器购买指南(800购买洋垃圾)

以上内容基本上就是我接近3个月的Kubernetes更新内容,作为体验入门是没问题的,如果还需要更加深入还需要不停的练习。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。