kubernetes是什么
概念
管理容器化的工作负载和服务
特点
声明式和自动化
部署演进
物理机部署:资源边界问题
虚拟化部署:虚拟机资源消耗问题
容器化部署:轻量级
kubernetes组件

组件分为2类:控制平面组件(Control Plane Components)和节点组(None)
控制平面组件
作用
kube-apiserver
用于公开kubernetes的API。能够水平伸缩(部署多个kube-apiserver实例来平衡流量)
etcd
kuben-scheduler
kube-controller-manager
各个控制器(将xx的当前状态向期望的方向转变)的集合
Node组件
kubelet
kube-proxy
container runtime(容器运行时)
负责运行容器的软件
Kubernetes API
API Server (kube-apiserver)是kubernetes控制面的核心。
使用API可以操作集群内部资源。
kubectl也是基于调用API实现的。
使用kubernetes对象
理解 Kubernetes 对象

对象会被存储至etcd数据库。
对象的所有操作(增删改查)都需要通过Kubernetes API。程序中可以借助 [Client Libraries](https://kubernetes.io/docs/reference/using-api/client-libraries/)实现调用Kubernetes API
Kubernetes 对象管理
对象名称和 IDs
名称必须在同类资源中唯一
UID全局唯一
名字空间
用于隔离一组资源
命名空间+资源配额可以为多用户划分集群
并不是所有对象都在命名空间中(如Node、命名空间本身)
# 位于名字空间中的资源kubectl api-resources --namespaced=true# 不在名字空间中的资源kubectl api-resources --namespaced=false
标签和选择算符
标签支持高效的查询和监听
可以用=进行筛选,多条件使用,分隔
在API调用中也可以使用标签
- 基于kubectl时使用
-l标签 - 基于url调用
