Kubernetes教程(七)了解集群、标签、Pod和Deployment


Kubernetes的知识真的特别庞大,知识点多,还特别看重实践操作。我从 Kubernetes这个单词怎么拼写到在搭建好K8s集群并运行一个Nginx,花了一周的时间。我现在也是超级菜鸟一个,连入门都不算,只能边学边记录,我看的书籍是下面2本:

  • 《Kubernetes权威指南》第6版,知识点全面,对概念和原理讲的深入
  • 《Kubernetes企业级云原生运维实战》李振良编写,更偏向实战操作,以便🐮🐴们能用上K8s为老板打工
  • 个人建议先看《Kubernetes企业级云原生运维实战》,不然《Kubernetes权威指南》的第一章(共47页)都根本看不懂💀

一、K8s资源对象

K8s中的基础概念和术语大多围绕资源对象来说的,资源对象可分如下几类:

  • 基础资源对象:节点(Node)、容器组(Pod)、服务(Service)、存储卷(Volume)
  • 基础资源对象相关的事务与控制器:标签(Label)、注解(Annotation)、命名空间(Namespace)、水平扩容、配置(ConfigMap、Secret)、持久化存储(PersistentVolume、PersistentVolumeClaim、StorageClass)、工作负载控制器(Deployment、StatefulSet、DeamonSet、Job、CronJob)
  • 资源管控和权限相关:资源限制、资源配额、角色、角色绑定
  • 网络相关 :Ingress、网络策略(NetworkPolicy)等

K8s中资源对象包括几个公共属性:版本(Version)、类别(Kind)、名称(Name)、标签、注解。我们可以用YAMLJSON格式声明一个K8s资源对象,每个资源对象都有自己特定的结构定义,比如PodService的YAML文件的格式是不同的。定义好的资源对象会保存在etcd这非关系型数据库中,以便快速读写。

二、K8s集群

K8s集群(Cluster)是由MasterNode组成的。

1. Master

Master是控制节点,负责管理和控制整个集群,相当于集群的大脑,在每个K8s集群中都需要一个或一组Master。在Master上运行一下关键进程:

  • kube-apiserver:提供RESTful API接口,是对资源进行增删改查的唯一入口,也是集群控制的入口
  • kube-controller-manager:所有资源对象的自动化控制中心,相当于“大总管”
  • kube-scheduler:负责资源调度(Pod调度)

2. Node

Node是集群中的工作负载节点,是真正干活的打工人。Master会把工作负载分配给Node,当某个Node宕机,其上的工作负载会被Master转移到其他Node上。在每个Node上运行着以下关键进程:

  • kubelet:负责Pod对应容器的创建、启停等任务,听Mater的指挥,实现集群管理的基本功能
  • kube-proxy:实现K8sService通信与负载均衡机制
  • 容器运行时(如Docker):负责本机容器的创建和管理
查看集群有多少节点
kubectl get nodes

查看某个Node的信息
kubectl describe node <node_name>

三、Namespace(命名空间)

在K8s集群中还有一个重要概念-命名空间(Namespace),在大多情况下用于多租户的资源隔离,典型的思路是给每个租户分配一个命名空间。每个命名空间都是相互独立的,不同命名空间的资源对象是逻辑上相互隔离。K8s安装运行后,默认会有2个Namespace:

  • default:给用户用的,用户创建资源对象时,如不指定命名空间,会放到default命名空间
  • kube-system:存放系统相关的资源对象如网络组件、DNS组件、监控类组件
若不指定namespace,查看的是default命名空间内的资源对象
kubectl get pods

通过参数查看指定命名空间"dev"的资源对象
kubectl get pods --namespace=dev

四、Label(标签)

Label(标签)是K8s一个核心概念,它就是一个key=value的键值对,其中keyvalue都是用户自定义。Lable可以被附加到NodePodDeploymentServiceVolume等资源对象上,并且 一个资源对象可以有多个标签。 在实际生产环境中,Pod应该都是有标签的,下面看个例子,就知道标签的重要性了。

  • 下面是个定义Service的yaml文件,最后的selector就是指关联有app=nginx标签的Pod
apiVersion: v1        # API版本
kind: Service         # 资源类型
metadata:             # 资源元数据
  name: nginx         
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑟王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值