炼气境—第1层:理解K8S一些基础概念

Hello 小哥,欢迎来到容器世界,我是小K,我会陪着你一起纵横容器世界!目前微服务横行,我们容器天国也不甘落后,我谷歌大朝经过不断努力,完善了一套容器编排的内功心法-Kuberents(K8S),融汇贯通可达武神境!我们先来学习一些基础的东西吧!


K8S 介绍

微服务框架的流行,使得服务越来越精细化,服务也变的越来越多,对于发布和管理而言,产生了巨大的挑战,而Docker 的诞生,给与微服务的资源治理和控制提供了很好的基础—容器化,然后,Docker 对于容器服务的编排没有那么方便,K8S 基于Docker引擎提供了一整套的容器管理方案,说白了,就是对于容器做管理的,并提供了一些自动化的功能,如收缩,扩容等。

使用k8s,你可以得到这些:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

k8s 特点

  • 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
  • 可扩展: 模块化, 插件化, 可挂载, 可组合
  • 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

k8s解决了哪些难题?

  • 多个进程(作为容器运行)协同工作
  • 存储系统挂载
  • Distributing secrets
  • 应用健康检测
  • 应用实例的复制
  • Pod自动伸缩/扩展
  • Naming and discovering
  • 负载均衡
  • 滚动更新
  • 资源监控
  • 日志访问
  • 调试应用程序
  • 提供认证和授权

容器编排的基础资源定义和理解

一切皆为资源,一切即可描述,一切皆可管理。

NameSpace

命名空间。一般,一个K8S集群的命名空间是用来隔离和控制资源的,这里的资源指的是服务,CPU,内存等资源,所以,一个命名空间可以认为是一套环境,比如我建立三个命名空间为 dev 、test 、prod ,代表了 开发环境、测试环境、生产环境,环境彼此之间资源可以控制和隔离。

POD

k8s可以是基于Docker 引擎来管理容器的,pod 的存在是因为原生Docker 和K8S 不是一家公司的产品,那么,如果基于原生去修改里面的容器比较困难,所以,K8S 在外部包了一层用作对于原生容器的管理,这就是pod。一个pod 里面可以有多个容器,一般,我们在使用的时候,基本一个pod 只有一个容器。

Deployment

这个资源是一个其实是一个发布控制器,一般用于实战中发布服务使用。这个玩意最核心的功能,就是完成了pod 的控制,建立RC(副本个数控制器,也就是几个实例)来控制一个服务后面的pod 数目,以及pod 的生老病死,pod 使用的资源,pod 是否健康的检查,重启策略等等等。重点关注这个,真实操作的基本都是这个。

Service

Service 名为服务,其实是一层网络抽象,最大的意义就是service管理的是endpoints ,也就是多个pod, Service 作为抽象资源,他所代表的IP,端口是不变的,这是区别于pod 的地方,如果在k8s网络里进行服务互相访问的话,用service 最好不过了。他其实等同于有自动发现后端节点和负载均衡的功能。

Ingress

路由,目前基本上各个厂商都使用的是Nginx Ingrss 做集群的路由管理。
Ingress 这种方式其实主要用于对外提供http服务的访问地址,以Ngxin 来对比的话,
其实就是把location 和server 端动态换,当然,本质上Nginx Ingress 就是基于Nginx Server 和 Tmplate config 做出来的,核心点在Nginx Controlle 对于Location 的刷新和监控。

ConfigMap

配置管理。这个可以作为配置中心。实战中一般使用两种方式,一个是作为环境变量导入,一种是作为配置文件挂载到内部磁盘目录。

Secret

保密字典。 支持三种类型的 : base64 的,TLS证书的,Docker 仓库的镜像认证秘钥的。

PV 和PVC

数据要落盘,如果在pod 中,如果容器销毁,则一切都没有了,所以有了持久化存储的概念。
PV 存储卷,PVC 存储卷申明。
PVC 常用在Deployment 中做数据的持久化存储,程序往指定的目录路径写数据,那么PVC可以 mounts 到改路径下,实现持久化存储。
这里还需要理解一个Volume 的概念,后面在细说。

Labels 和 Selectors

标签和选择器。作用其实就是给每个容器贴个标签,然后呢,各个控制器通过Selector 进行pod 的控制管理,比如Deployment,Service 都是这样控制的。

以上是几种常用的资源的作用,具体点的,等下一层小K会逐渐讲解。

禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 一、 K8s 是什么? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群...
    loveroot阅读 4,864评论 1 20
  • 1、基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer、scheduler...
    阿斯蒂芬2阅读 7,479评论 0 43
  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubern...
    devabel阅读 4,665评论 0 11
  • kubernetes 简介 一个迅速过一遍kubernetes 非常不错的资源:基于Kubernetes构建Doc...
    bradyjoestar阅读 14,477评论 2 7
  • 1.Pod Pod是k8s的最基本的操作单元,包含一个或多个紧密相关的容器,类似于豌豆荚的概念。一个Pod可以被一...
    jony456123阅读 4,896评论 0 5