kubelet
1.运行在集群中所有节点上
2.和master节点交互,用于上报各个节点的信息
3.pod的管家
4.由node上的init 进程启动
5.配置文件config 中的bootstrap参数 用于和master节点中的apiserver通信,获取证书文件 ,存放在
cd /var/lib/kubelet/pki 路径下面
6.kubelet 配置文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
7.修改生效 systemctl daemon-reload & systemctl restart kubelet
kube-apiserver
1.由kubelet启动, 静态pod启动 静态pod 由 manifest创建,不通过deplayment创建
2.是一个庞大的单体程序
3.6443端口
etcd
1.由kubelet启动的static pod
2.apiserver 与etcd之间通过 TLS安全通信
3.etcd挂载master节点本地路径 /var/lib/etcd用于运行时数据存储
4.数据存储路径/var/lib/etcd/
管理控制中心:kube-controller-manager
1.负责集群内的node,pod副本,服务的endpoint,命名空间,serviceAccount ,资源配额管理等
Replication Controller Replicaset endpoint controller namespaces controller serviceAccount Controller
2.由kubelet 启动的 static pod
调度器:kube-scheduler
1.单纯地调度pod
2.按照特定的调度算法和策略,将待调度的pod绑定到集群中某个合适的Node中,并写入绑定信息
3.由kubelet 启动的 static pod
service
1.service是一组pod的抽象
2.会启动一个虚拟的浮动ip
3.对service的访问流量会按照一定的负载均衡策略转发到对应的后端endpod中
4.service没有对应的实体,正真起作用的是位于每个pod对应node上的kube-proxy组件
kube-proxy
1.kube-proxy是由daemonset控制器在各个节点上启动的唯一实例
2.kube-proxy 不是静态 pod
3.kube-proxy 的mode 一路演化而来 userspace --> iptables --> ipvs
kubectl
1.是管理k8s的利器
2.集群访问配置:kubectl config 创建租户/用户
3.集群控制:kubectl create /apply/delete/lable/edit/expose/scale
apply可以恢复 scale的扩展创建
4.集群查看和问题调试命令:kubectl get/describe/logs/exec/attach