容器服务 kubernetes 系统组件介绍
1.前言
容器服务建立 kubernetes 集群后,系统默认建立一批 kubernetes 集群的系统组件与进程,理解他们的部署配置方式和含义,是优化集群,排除 k8s 集群故障的技术基础之一。
2.系统组件介绍:
2.1 Master 组件
2.1.1 kube-apiserver
基于generic server 上封装的一层官方默认的 apiserver:
- 提供了集群管理的REST API接口(包括认证授权、数据校验以及集群状态变更);
- 提供其他模块之间的数据交互和通信的枢纽 (其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd);
- 资源配额控制的入口,完备的集群安全机制,对相关集群对象增删查改等操作。
部署方式
kube-apiserver 以 Static pod 静态POD 方式部署,其配置的 yaml 在 master 机器的/etc/kubernetes/manifests/kube-apiserver.yaml,修改该设置,保存后 k8s 集群会自动重启部署 apiserver pod 到Master 机器上。
# ssh 登录 master 机器 cd /etc/kubernetes/manifests # 查看 yaml 文件 vi /etc/kubernetes/manifests/kube-apiserver.yaml
服务暴露方式
通过 SLB 负载均衡暴露服务,slb 后端服务器为 apiserver 所在的3台 Master 机器,侦听 pod 提供的6443 https 服务端口。
2.1.2 ETCD:
用来保存 k8s 集群所有对象的状态信息和网络信息。
部署方式
Master 机器上启动进程, etcd 在阿里云容器服务中以系统 Service 方式部署。
服务暴露
2379端口
2.1.3 kube-scheduler:
kubernetes 调度器,调度 pod 到 ECS 的部署。
部署方式
静态 POD方式部署,其配置的 yaml 在 master 机器的/etc/kubernetes/manifests/kube- scheduler.yaml,修改该设置,保存后 k8s 集群会自动重启部署。
# ssh 登录 master 机器 cd /etc/kubernetes/manifests # 查看 yaml 文件 vi /etc/kubernetes/manifests/kube-scheduler.yaml
服务暴露方式
http 10251 端口提供服务
2.1.4 kube-controller-manager:
k8s 资源对象管理控制器,包括 默认启动的Node Controller, Daemon Controller, Deployment Controller 以及阿里云扩展的相关 Controller 控制器 等;
部署方式
静态 POD方式部署,其配置的 yaml 在 master 机器的/etc/kubernetes/manifests/kube-controller-manager.yaml,修改该设置,保存后 k8s 集群会自动重启部署。
# ssh 登录 master 机器 cd /etc/kubernetes/manifests # 查看 yaml 文件 vi /etc/kubernetes/manifests/kube-controller-manager.yaml
服务暴露方式
http 10252 端口提供服务
2.1.5 cloud-controller-manager:
云资源管理控制器,实现 Cloud provider,用以云资源的管理。
部署方式
Daemonset 守护进程方式部署,部署在 Master 机器上,使用 。
# 查看部署文件 kubectl get daemonset cloud-controller-manager -o=yaml -n kube-system # 查看 pod kubectl get pods -n kube-system|grep cloud-controller-manager
服务暴露方式
http 10252 端口提供服务
2.2 Node 组件
2.2.1 kubelet:
kubelet 服务进程,每个 node 上运行该节点,向 Master 注册节点信息。
部署方式
节点上运行该服务进程
暴露服务
包括 10250 端口的认证 API、4194 端口的 cAdvisor API、10255 端口的只读 API 以及 10248 端口的健康检查 API
2.2.2 kube-proxy:
网络通信组件
部署方式
Daemonset 守护进程方式部署,部署在 Master,Node 机器上都有使用 。
# 查看部署文件 kubectl get daemonset kube-proxy-master -o=yaml -n kube-system # 查看 pod kubectl get pods -n kube-system|grep kube-proxy-master
2.3 附加组件
名称 | 部署形式 | 提供的服务 | 备注 |
---|---|---|---|
kube-DNS(Core-DNS) | Deployment | 端口:53 域名解析服务 | 建立扩容至多个 POD 副本 |
nginx ingress controller/default-http-backend | Deployment | Nginx http 七层协议路由与 http 后台服务 端口:80,443 | 对于 http 服务访问量高的必须扩容或者独立另外部署 |
heapster & influxdb | Deployment | 80-->8082 | pod 云监控组件: influxdb为存储监控数据的时序数据库; heapster 为容器集群监控和性能分析工具,HPA、Dashborad、Kubectl top都依赖于heapster收集的数据。 坑:注意 influxdb 的内存做限制,防止其内存无限增长。 |
kube-flannel | Daemonset | 网络设施进程 | |
logtail | Daemonset | 日志采集守护进程 | |
flexvolume | Daemonset | volumen 磁盘管理进程 | |
tiller-deploy | Deployment | port:44134 | helm工具的服务端 |
metrics-server | Deployment | 443 | 功能通 Heapster,采集容器监控与性能数据。 |
alibaba-log-controller | Deployment | cloud-controller-manager 扩展 | 日志管理控制器 |
alicloud-application-controller | Deployment | cloud-controller-manager 扩展 | 应用管理控制器 |
alicloud-disk-controller | Deployment | cloud-controller-manager 扩展 | 磁盘存储控制器 |
alicloud-monitor-controller | Deployment | cloud-controller-manager 扩展 | 云监控 |
aliyun-acr-credential-helper | Deployment | cloud-controller-manager 扩展 | 认证 |

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
权限细粒度设置
1. 前言 aliyun ram 权限系统功能强大,大部分云产品实现了极其细粒度的权限控制,但是在默认的管理管理中,往往只有读写2种权限,对产品具体设置分细粒度和访问控制权限可以实现根据应用分配不同产品的权限。 应用设置与云资源以及人员的关系,对于已经上云的资源,按照应用所使用的云资源以及人员在应用的角色(owner,PE,Developer,reporter),配置相应权限;没有上云的产品,比如 vipserer,sunfire 等,先改造实现 aliyun ram 权限控制,然后配置权限。 2. ECS,SLB等云资源权限控制: ecs,slb,vpc 等资源,可以按照通用的 ram 配置方式配置相应读写权限,具体参考: 云服务器(ECS): 点击链接 负载均衡(SLB):点击链接 云数据库(RDS): 点击链接 日志服务(SLS): 点击链接 云监控: 点击链接 注:云监控目前不支持细粒度资源描述,资源授权用“*”通配。 范例: { "Version": "1", "Statement": [ { "Action": [ "ecs: AddTags", "ecs:Des...
- 下一篇
使用阿里云CSI Plugin实现LVM数据卷动态扩容
概要 LVM存储类型为本地存储,并非可随着Pod迁移的可插拔的分布式存储方案,如果Pod期望在多个节点上使用相同的lvm卷,则需要在每个节点上都创建相同名字的lvm卷,这样Pod调度的时候可以继续使用相同的lvm卷名进行挂载。然而这样势必会造成有些节点上的lvm卷空间浪费,解决浪费的问题,可以通过将pod固定在某个节点运行,减少调度,这样只会在这个节点上创建需要的lvm卷。 阿里云容器服务CSI插件支持LVM数据卷的挂载、管理功能,可以动态创建LVM卷并挂载使用。且在最新的版本中可以通过修改pvc的大小,动态扩容lvm卷的大小,在重启应用Pod时进行文件系统扩容。 LVM实现原则: Provision Lvm数据卷的过程中,只会创建lvm类型pv对象,不会真正在节点上创建lvm volume; 创建lvm卷需要在已有的vg基础上进行,即需要
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用