kubectl
dashboard
部署工具:
使用批量部署工具如(ansible/ saltstack)、手动二进制
、apt-get/yum 等方式安装,以守护进程的方式启动在宿主机上
,类似于是 Nginx 一样使用 service 脚本启动。
- Master:是集群的网关和中枢枢纽,
主要作用
:暴露API接口,跟踪其他服务器的健康状态、以最优方式调度负载,以及编排其他组件之间的通信。单个的Master节点可以完成所有的功能,但是考虑单点故障的痛点,生产环境中通常要部署多个Master节点,组成Cluster。
- Node:是Kubernetes的工作节点,负责接收来自Master的工作指令,并根据指令相应地创建和销毁Pod对象,以及调整网络规则进行合理路由和流量转发。生产环境中,Node节点可以有N个。
================================================================================
k8s API Server提供了k8s各类资源对象(pod
,RC,Service等)的增删改查
及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。
apiserver 目前在master监听两个端口,
- 通过
--insecure-port int
监听一个非安全的127.0.0.1本地端口(默认为8080
)
该端口用于接收HTTP请求;
该端口默认值为8080,可以通过API Server的启动参数“–insecure-port”的值来修改默认值;
默认的IP地址为“localhost”,可以通过启动参数“–insecure-bind-address”的值来修改该IP地址;
非认证或授权的HTTP请求通过该端口访问API Server。
- 通过参数
--bind-address=1.1.1.1
监听一个安全的端口(默认为6443
)
该端口默认值为6443,可通过启动参数“–secure-port”的值来修改默认值;
默认IP地址为非本地(Non-Localhost)网络端口,通过启动参数“–bind-address”设置该值;
该端口用于接收HTTPS请求;
用于基于Tocken文件或客户端证书及HTTP Base的认证;
用于基于策略的授权;
- kubernetes API Server的
功能
与使用:
提供了集群管理的REST API接口(包括认证授权、数据校验以及集群状态变更);
提供其他模块之间的数据交互和通信的枢纽(其他模块通过API
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 (备注前端)
最后
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容
基本涵盖了95%以上前端开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-2aitQieo-1711720904116)]
最后
[外链图片转存中…(img-W0htYWui-1711720904116)]
[外链图片转存中…(img-BawsQcQy-1711720904117)]
标签:Node,知识点,----,端口,2024,API,Pod,kube,节点 From: https://blog.csdn.net/2401_84006562/article/details/137157532由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容