简介: 容器服务建立 kubernetes 集群后,系统默认建立一批 kubernetes 集群的系统组件与进程,理解他们的部署配置方式和含义,是优化集群,排除 k8s 集群故障的技术基础之一。本文将为大家详细讲解 kubernetes 集群系统组件的功能及用法。
作者:joezxh
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站
容器服务建立 kubernetes 集群后,系统默认建立一批 kubernetes 集群的系统组件与进程,理解他们的部署配置方式和含义,是优化集群,排除 k8s 集群故障的技术基础之一。
基于generic server 上封装的一层官方默认的 apiserver:
部署方式
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 服务端口。
用来保存 k8s 集群所有对象的状态信息和网络信息。
部署方式
Master 机器上启动进程, etcd 在阿里云容器服务中以系统 Service 方式部署。
服务暴露
2379端口
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 端口提供服务
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 端口提供服务
云资源管理控制器,实现 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 端口提供服务
kubelet 服务进程,每个 node 上运行该节点,向 Master 注册节点信息。
部署方式
节点上运行该服务进程
暴露服务
包括 10250 端口的认证 API、4194 端口的 cAdvisor API、10255 端口的只读 API 以及 10248 端口的健康检查 API
网络通信组件
部署方式
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
名称 | 部署形式 | 提供的服务 | 备注 |
---|---|---|---|
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 扩展 | 认证 |
“ 阿里巴巴开源镜像站 提供全面,高效和稳定的系统镜像、应用软件下载、域名解析和时间同步服务。”
本文转自: 容器服务 kubernetes 系统组件介绍-阿里云开发者社区