Kubernetes 修仙录

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

2019-09-29  本文已影响0人  一笑醉红颜zh

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


K8S 介绍

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

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

k8s 特点

k8s解决了哪些难题?

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

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

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会逐渐讲解。

上一篇 下一篇

猜你喜欢

热点阅读