k8s基础之一 k8s基础架构

k8s基础

k8s命令补全

yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

k8s架构

 

master节点

kube-apiserver:集群的控制中枢,各个模块之间信息交互都需要经过kube-apiserver同时呢、他也是集群管理、资源配置、整个集群安全机制管理入口。

controller-manager:集群的状态管理器,保证pod或者其他资源达到期望值,而是需要和apiserver进行通信,在需要的时候创建、更新或者删除它所管理的资源

scheduler:集群的调度中心,它会根据指定的一系列条件,选择一个或者一批最佳节点,部署我们的pod。

etcd:键值数据库,保存一些集群的信息,一般生产环境建议部署三个以上(奇数个)

 

node/worker/minion 节点:

kubelet:负责监听节点上pod的状态,同时负责上报节点和节点上面pod的状态。负责与master节点通信,并怪节点上的pod。

kbe-proxy:负责pod之间的通信和负载均衡,将指定流量分发到后端正确的机器上。

ipvs: 监听master节点增加和删除service以及endpoint的消息,调用Netlink接口创建相应的ipvs规则。通过ipvs规则将流量转发到相应的pod

Calico: 符合cni标准的网络插件,给每个pod生成一个唯一的ip地址,并且把每个节点当做一个路由器,,可以做网络策略这个是flan做不到的。。。cilium

coreDNS: 用于k8s集群内部的serice解析,可以让pod吧servicer名称解析成ip地址。然后通过service的ip地址进行链接到对应的应用上

docker:容器引擎,对容器的管理

metrics-server:度量,采集日志

在有成百上千个service时候kube-proxy扛不住,所以引用了,cilium eBPF,目前没有经过生产环境考验

coredns有个参数可以控制起副本的个数,根据生产环境多起几个

 

 

 

为什么使用ipvs而不使用iptables

因为iptables在规则成百上千的时候,性能会急剧下降。

 

 

posted @ 2021-12-16 15:59  念长卿  阅读(216)  评论(0)    收藏  举报