Server查询或修改数据,只有API Server才直 接操作etcd);
是资源配额控制的入口;
拥有完备的集群安全机制.
curl 127.0.0.1:8080/apis #分组api #
curl 127.0.0.1:8080/api/v1 #带具体版本号的api #
curl 127.0.0.1:8080/ #返回核心api列表 #
curl 127.0.0.1:8080/version #api 版本信息 #
curl 127.0.0.1:8080/healthz/etcd #与etcd的心跳监测 #
curl 127.0.0.1:8080/apis/autoscaling/v1 #api的详细信息
启动脚本
cat /etc/systemd/system/kube-apiserver.service
[Service]
ExecStart=/usr/bin/kube-apiserver \
–bind-address=192.168.7.101 \ #外部监听端口
–insecure-bind-address=127.0.0.1 \ #本机监听端口
…
LimitNOFILE=65536
Controller Manager作为集群内部的管理控制中心,
负责集群内的Node、Pod
副本、服务端点(Endpoint
)、命名空间(Namespace
)、服务账号(ServiceAccount
)、资源定额(ResourceQuota
)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。
例如你删一个
kubectl delete pods bet-test-1dsakjfhaskdj
等会会儿他就会自己创建
kubectl get pods
启动脚本:
vim /etc/systemd/system/kube-controller-manager.service
[Service]
ExecStart=/usr/bin/kube-controller-manager \
–master=http://127.0.0.1:8080 \ #调用kube-api-server的本地端口进行通信
…
Scheduler负责Pod调度
,在整个系统中起"承上启下"作用,
承上
:负责接收Controller Manager创建的新的Pod,为其选择一个合适的Node;
启下
:Node上的kubelet接管Pod的生命周期。
通过调度算法为待调度Pod列表
的每个Pod
从可用Node列表中选择一个最适合的Node
,并将信息写入etcd中 node节点上的kubelet通过API Server监听到
kubernetes Scheduler产生的Pod绑定信息
,然后获取对应的 Pod清单,下载Image,并启动容器。
优选策略
-
LeastRequestedPriority
优先从备选节点列表中选择资源消耗最小的节点(CPU+内存)。 -
CalculateNodeLabelPriority
优先选择含有指定Label的节点。 -
BalancedResourceAllocation
优先从备选节点列表中选择各项资源使用率最均衡的节点。
================================================================================
在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源
。
可以把kubelet理解成Server/Agent架构中的agent,kubelet是Node上的pod管家。
启动脚本:
#kubelet cAdvisor 默认在所有接口监听 4194 端口的请求, 以下iptables限制内网访问
ExecStartPost=/sbin/iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 4194 -j ACCEPT
ExecStartPost=/sbin/iptables -A INPUT -s 172.16.0.0/12 -p tcp --dport 4194 -j ACCEPT
ExecStartPost=/sbin/iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 4194 -j ACCEPT
ExecStartPost=/sbin/iptables -A INPUT -p tcp --dport 4194 -j DROP
kube-proxy 运行在每个节点上,监听 API Server 中服务对象的变化
,再通过管理 IPtables 来实现网络的转发。
Kube-Proxy 不同的版本可支持三种工作模式
UserSpace
k8s v1.2 后就已经淘汰
IPtables
目前默认方式
IPVS--------建议
需要安装ipvsadm、ipset 工具包和加载 ip_vs 内核模块
启动脚本
cat /etc/systemd/system/kube-proxy.service
[Service]
使用 那种工作模式
–proxy-mode=iptables
Kube-Proxy 监听 Kubernetes Master 增加和删除 Service
以及 Endpoint 的消息。
对于每一个 Service,KubeProxy 创建相应的 IPtables 规则,并将发送到 Service Cluster IP 的流量转发到 Service 后端提供服务的 Pod 的相应端口上。
注意: 虽然可以通过 Service 的 Cluster IP 和服务端口访问到后端 Pod 提供的服务,但该 Cluster IP 是Ping 不通的
。 其原因是 Cluster IP 只是 IPtables 中的规则,并不对应到一个任何网络设备。
IPVS 模式的 Cluster IP 是可以 Ping 通
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《前端开发四大模块核心知识笔记》
最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
理和分享。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算