K8s

一.概述
  • Docker 是一个容器化平台,而 k8s 是 Docker 等容器平台的协调器。
  • 打包成容器镜像(有依赖的环境:操作系统,库等)->容器实例
  • 在业务发展初期只有几个微服务,这时用 Docker 就足够了,但随着业务规模逐渐扩大,容器越来越多,运维人员的工作越来越复杂,这个时候就需要编排系统解救,比如k8s。

二.基本架构

  •  K-proxy:负责外部访问的网络

三.资源

k8s中资源创建方式

  • 命令行:如
  • YAML:kubectl apply -f xxx.yml

NameSpace:名称空间,对集群进行资源隔离划分,默认只隔离资源,不隔离网络。


pod:k8s将docker中的容器封装成pod,每一个pod可以管理多个容器


deploymenet:控制Pod

  • 多副本:比如创建一个deloyment,可以创建多个pod
  • 自愈:比如某个pod自己挂断了,deployment会自动重新拉起新的pod
  • 扩缩容:比如某个应用负载过高,需要加几个节点,加几个pod,就可以使用改功能
  • 版本回退:可以保存多个版本revision
// 多副本 
kubectl create deployment xxx --image-nginx --replicas=3
// 扩缩容
kubectl scale deploy/xxx --replicas=5

四.存储抽象

每个pod如果将数据挂在到自己所在的主机,那么pod消亡,或者pod重新在其他主机上启动,数据就会丢失,所以所有的pod共享一个公共的存储空间比较合理。

PV和PVC:

  • pv:每一个pvc相当于一个存储空间,都有自己的大小
  • pvc:每一个pod需要用到存储空间,都要定义一个pvc,根据需要的pvc大小,可以固定一个pv。当pod消亡, pv中的数据不变,当pvc删掉的话,pv中的数据可以被回收

ConfigMap:就是将一个应用的配置文件放入k8s的配置集(ConfigMap)中,这个配置集是存放在k8s的组件etcd(资料库)中

kubectl create cm xxx.conf -- from-file=xxx.conf

在yaml中,先创建configMap,然后pod绑定configMap

五.helm包

helm:使用原生的k8s部署方式xxx.yaml方式,会有很多yaml文件,无法管理,helm其实就是把yaml进行管理。
概念:

  • Chart:代表Helm包(相当于yarm文件)
  • Repository:就是用来存放和共享Chart的地方,可以类比成Maven仓库。
  • Release:运行在K8s集群中的Chart的实例,一个Chart可以在同一个集群中安装多次。Chart就像流水线中初始化好的模板,Release就是这个“模板”所生产出来的各个产品。安装helm包就是做一些资源操作,比如创建ConfigMap,PVC等

 

posted @ 2024-03-28 12:06  小猴子_X  阅读(12)  评论(0)    收藏  举报