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 @   念长卿  阅读(208)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示

目录导航