kubernetes学习笔记一(容器基础)

kubernetes学习笔记一(容器基础)

Scroll Down

一、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来管理集群和调度容器。

总结:

    如果你是在非Linux环境下考虑使用docker-compose,当然更推荐使用hyper-v或者virtualbox。

    如果你需要同时操作多个容器,或者希望使用配置文件记录容器启动命令参数,那么推荐使用docker-compose。

    如果你需要在多台主机上部署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

学习笔记部分内容来源于尚硅谷汪洋老师学习视频