一、docker为我们解决了哪些问题呢?
容器是一个由linux的namespace、cgroup、rootfs构建出来的进程隔离环境。容器的rootfs部分称为容器的镜像,是容器的静态视图。namespace、cgroup构成的是隔离环境,这一部分被称为容器的进行时,是容器的动态视图。
就像docker公司声明的Build、Ship、Run,docker解决的是应用打包,传输和运行的问题,我们可以通过docker build创建应用镜像,通过docker push、pull传输镜像,通过docker run运行镜像,docker使应用的部署更方便,而容器本身又自带了对资源进行隔离和限制的能力,有了这些能力我们就能轻松的将容器部署到PaaS平台,并互不影响的运行起来。
二、docker容器技术存在哪些问题?
随着运行的容器项目越来越多,如何对容器进行管理成了摆在开发者面前的问题。docker公司也意识到了这个问题,于是发布了自己的容器编排服务docker-compose以及跨主机的编排服务docker-swarm、docker-machine,也就是docker三剑客。
docker 三剑客de区别:
① docker-machine
docker-machine是解决docker运行环境问题。
docker技术是基于Linux内核的cgroup技术实现的,那么问题来了,如果在非Linux平台上使用docker技术de话就需要依赖安装Linux系统的虚拟机。
docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术。你可以把它理解为virtualbox或者vmware,最开始在win7上用得比较多,但是win10开始自带了hyper-v虚拟机,已经不再需要docker-machine了,docker可以直接运行在安装了Linux系统得hyper-v上。
② docker-compose
dcoker-compose主要是解决本地docker容器编排问题。
一般是通过yaml配置文件来使用它,这个yaml文件里能记录多个容器启动的配置信息(镜像、启动命令、端口映射等),最后只需要执行docker-compose对应的命令就会像执行脚本一样地批量创建和销毁容器。
③ docker-swarm
docker-swarm是解决多主机多个容器调度部署的问题。
swarm是基于docker平台实现的集群技术,他可以通过几条简单的指令快速的创建一个docker集群,接着在集群的共享网络上部署应用,最终实现分布式的服务。
swarm技术相当不成熟,很多配置功能都无法实现,只能说是个半成品,目前更多的是使用Kubernetes来管理集群和调度容器。
三、kubernetes及其能做什么
随着docker公司推出容器编排服务触动了google、redhat等PaaS平台的利益,为了切割docker公司在容器领域的话语权,google联手redhat公司发布了kubernetes容器编排项目
容器编排就是指如何将我们的应用部署、运行到PaaS平台上,对于比较复杂的应用编排,容器编排服务会帮助我们处理应用间的拓扑关系、亲和性、反亲和性、服务发现、服务监控以及网络存储方案等所有问题,而docker-swarm在处理复杂的应用关系上变现并不是很好,于是慢慢地kubernetes便成了容器编排的事实标准。
介绍说明:
Kubernetes框架、Kubernete关键字含义
基础概念:
什么是Pod、控制器类型、K8S网络通讯模式、
资源清单:
什么是资源、掌握资源清单的语法、编写Pod、 掌握Pos的生命周期(极其重要)
Pod控制器:
掌握各种控制器的特点以及使用定义方式
服务发现:
掌握svc(service)原理及其构建方式
存储:
掌握多种存储类型的特点,并且能够在不同环境中选择合适的存储方案(有自己的见解)
调度器:
掌握调度器原理,能够根据要求将Pod定义到想要的节点运行
集群安全机制:
集群的认证、鉴权、访问控制、原理及其流程
HELM:
( 相当于linux中的yum包管理工具,只不过yum安装的是rpm包,helm安装的是一个集群 ) helm原理、helm模板自定义、helm部署常用插件
运维:
与kubernetes相容的东西:CICD的构建、通过jenkins的自动化部署
1、kubeadm源码修改( 为什么需要修改kubeadm的源码呢?因为其默认证书只有一年,即一年之后集群就不可以正常访问了。对于一些应用来说不是问题。但是对于跑在私网内的服务,而且如果不需要其新功能,一年的证书期就会阻碍我的这种部署思想,所以就需要通过修改kubeadm的源码来修改证书的时限 )
2、能够构建kubernetes高可用集群
服务分类:
有状态服务:DBMS(数据库管理系统)
无状态服务:Apache、Docker
学习笔记部分内容来源于尚硅谷汪洋老师学习视频