这里记录kubernetes学习和使用过程中的内容。
CentOS7 k8s-1.13 flanneld-0.10 docker-18.06 etcd-3.3
本节记录kubernetes的基本概念。
Master是Kubernetes里的集群控制节点,每个k8s集群里都需要一个Master节点来负责整个集群的管理和控制,基本k8s上所有的控制命令都是由它发起的,如果它宕机了,那整个集群所有的控制命令都可能不可用了。所有一般它是一台物理机或虚拟机。
一般Master节点上需要启动以下服务:
其实还有一个etcd服务,存储 k8s 里所有资源对象的数据。
k8s 集群中节点分为管理节点Master和工作节点Node,在早期版本里叫Minion。和Master一样,它一般是一台物理机或虚拟机。Master负责任务的分配调度,Node就负责任务执行,实际的工作都是在Node节点上(使用docker),当一个Node宕机是,它的任务会被分配到其他Node节点上。
Node节点也有一些关键的服务:
使用命令
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
192.168.10.11 Ready <none> 2d7h v1.13.0
192.168.10.12 Ready <none> 2d2h v1.13.0
Pod 是 k8s 最重要也是最基本的概念,每个Pod都有一个特殊的被称为“根容器”的Pause容器。Pause容器对应的镜像属于 k8s 平台的一部分,每个Pod由Pause容器和业务容器组成。
为什么由Pod的概念和Pod这样的结构呢:原因如下:
Kubernetes为每个Pod都分配了唯一地IP地址,称之为Pod IP,一个Pod里地多个容器共享Pod IP地址。k8s采用虚拟二层网络技术,如flanneld、OpenvSwitch等实现集群内任务两个Pod之间地TCP/IP直接通信。
Pod有两种类型:普通地Pod和静态Pod(static Pod)
以下是Pod、容器和Node的关系:
同时Pod还能对使用的服务器上的计算资源设置限额,配置如下:
spec:
containers:
- name: db
image: mysql
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
Requests 为该资源的最小申请量,Limits则是上限值,超过可能被k8s kill并重启。memory单位为字节数,cpu单位m表示千分之一的配额,“250m”表示占用0.25个CPU
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-f8g28 1/1 Running 0 80m
myweb-529z6 1/1 Running 0 73m
myweb-dkb4n 1/1 Running 0 73m
myweb-ggvwz 1/1 Running 0 73m
myweb-j5t4x 1/1 Running 0 73m
myweb-l6wqv 1/1 Running 0 73m
nginx 1/1 Running 1 88m
Event是一个事件的记录,记录了事件的最早产生时间、最后重现时间、重复时间、发起者、类型,以及导致此事件的原因等信息。Event通常会关联到某个具体的资源对象上、是排错的重要参考信息。
[root@k8s-master ~]# kubectl get events
LAST SEEN TYPE REASON KIND MESSAGE
100m Normal RegisteredNode Node Node 192.168.10.11 event: Registered Node 192.168.10.11 in Controller
99m Normal Starting Node Starting kube-proxy.
99m Normal Starting Node Starting kubelet.
Label是一个 key=value的键值对,用来管理k8s中的资源。它可以附加到各种资源对象上,如Node、Pod、Service、RC等。资源和对象为多对多关系,支持在资源生命周期的任意阶段确定。它支持以下语法:
Label Selector 在 k8s 中重要使用场景如下:
原文:https://www.cnblogs.com/xingyys/p/11574597.html