云原生学习总结

云原生训练营的学习已经经过3个月,即将迎来尾声。经过3个月的学习,我也从云原生的小白慢慢变成了一个入门者。为了记录一下自己这段努力学习的经历,先将学习知识和感受总结如下:
1. 云原生的基础是利用了容器技术。关于容器的特点有:
(1)容器技术使用Linux系统内核的namespace技术隔离了进程;
(2)容器技术使用Linux系统内核的cgroup技术实现了进程的资源限制;
(3)容器技术使用镜像分发的技术实现了应用和运行环境的打包部署和分发,因为运行环境打包进了镜像中,保证了运行环境的统一,这大大方便了应用的部署;
(4)容器镜像的文件系统是联合文件系统,分层联合挂载,这样的好处就是可以很大程度上复用本机上的重复镜像文件层;
(5)容器技术相比虚拟机有那些优缺点:
首先,容器技术更高效的利用系统资源,容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,容器对系统资源的利用率更高;
其次,使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,磁盘利用率更高;
最后,容器的这些优势和特点也造成了相对于虚拟机的劣势:无法虚拟化运行与宿主物理机操作系统内核不同(因为共享物理机的内核)的操作系统应用。在资源隔离上也不如虚拟机。
2. 云原生的基础架构编排工具K8S的底层实现是使用go语言,想要很好的运维和开发K8S,必须掌握好go语言。
3. 认识与了解K8S:Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本。
(1)基于容器的应用部署、维护和滚动升级;
(2)负载均衡和服务发现;
(3)跨机器和跨地区的集群调度;
(4)自动伸缩;
(5)无状态服务和有状态服务;
(6)插件机制保证扩展性。
4. 什么是K8S及K8S的核心对象:
Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本。Kubernetes的核心对象有:
(1)node:计算节点;
(2)namespce:隔离名称空间;
(3)pod:调度最小单元,其中必须包含1个或1个以上的容器;
(4)service:一种可以访问 Pod逻辑分组的策略,通常是记录了pod的IP和端口、名称等信息;
(5)ingress:对外暴露服务的对象,相比service的nodepod可以实现更强大的功能(反向代理等)。
(6)configmap:保存应用的配置;
(7)secret:安全的保存敏感信息;
(8)deployment:无状态应用的部署对象;
(9)replicaset:有状态应用的部署对象;
(10)crd:自定义资源对象;
(12)等等。
5. K8S的架构:
K8S的工作原理如下图


image.png

主要架构包括控制平面和数据平面:
(1)控制平面包括以下组件:
kube-apiserver:负责接收指令
kube-scheduler:负责对象的调度
kube-controller-manager:控制中心,负责对象、资源的管控
etcd:数据库,可以做成集群
网络插件:比如calico、cilium
(2)数据平面包括:
kubelet:负责容器整体的生命周期,挂接存储。
kube-proxy:负责配置网络
6. K8S集群管理需要注意的点:
(1)认证、鉴权、准入,这里要注意集群RBAC(Role-Based Access Control:基于角色的访问控制)的使用;
(2)学习各个组件的工作原理(此处学习的量、知识点和扩展都很多,目前还有很多盲点,还需要多次刷课程和扩展阅读理解);
(3)排错需要掌握的方法:
kubectl describe pod/svc/xx -n {namespaces};
kubectl logs -f podname (-p)查看pod log
journalctl -xfu kubelet查看kubelet log
(4)CSI存储接口:
非持久化存储:emptydir
持久化存储:PV 和 PVC
(5)集群的ssl证书部署和使用;
(6)实操部分,集群安装,各对象的yaml文件编写,应用部署实战作业;
(7)流量管理、集群联邦、集群安全的部分是我相对最陌生的。集群联邦可能使用的还不多,但是流量管理、集群安全部分之后还需要花时间多多补课。
7. 作业中踩到的坑:对于扩展知识储备不太充足的我,完成作业实操中遇到了不少的问题。例如集群安装拉取pause镜像失败造成集群无法成功安装的问题、ingress需要负载均衡本机使用metallb但是external-ip一直pending的问题......问题实在太多。但是在解决问题的过程中我也增加了对于K8S的理解,算是收获满满。

最后,我想说的是:
很感谢孟老师开发本课程,孟老师对于云原生知识的广度和深度都很让人佩服。感谢助教老师潘野、Marco,感谢班主任嘉嘉,你们的认真负责让我的学习更加顺利。同时也很开心遇到同期的同学,你们在群里的讨论和爱学习的氛围也让我受益颇多。最后也感谢一下我自己,3个月的学习努力坚持了下来,让自己有所收获,以后还会继续努力。

你可能感兴趣的:(云原生学习总结)