容器服务 kubernetes 系统组件

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 1.前言       容器服务建立 kubernetes 集群后,系统默认建立一批 kubernetes 集群的系统组件与进程,理解他们的部署配置方式和含义,是优化集群,排除 k8s 集群故障的技术基础之一。 2.系统组件介绍: 2.1 Master 组件 2.1.1 kube-apiserver        &nb

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 扩展

 

 

 

 

 

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
4天前
|
存储 运维 Kubernetes
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
|
4天前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
11天前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
68 11
|
27天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
132 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
13天前
|
Kubernetes 网络协议 Nacos
OpenAI 宕机思考丨Kubernetes 复杂度带来的服务发现系统的风险和应对措施
Kubernetes 体系基于 DNS 的服务发现为开发者提供了很大的便利,但其高度复杂的架构往往带来更高的稳定性风险。以 Nacos 为代表的独立服务发现系统架构简单,在 Kubernetes 中选择独立服务发现系统可以帮助增强业务可靠性、可伸缩性、性能及可维护性,对于规模大、增长快、稳定性要求高的业务来说是一个较理想的服务发现方案。希望大家都能找到适合自己业务的服务发现系统。
|
25天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
17天前
|
人工智能 运维 监控
容器服务Kubernetes场景下可观测体系生产级最佳实践
阿里云容器服务团队在2024年继续蝉联Gartner亚洲唯一全球领导者象限,其可观测体系是运维的核心能力之一。该体系涵盖重保运维、大规模集群稳定性、业务异常诊断等场景,特别是在AI和GPU场景下提供了全面的观测解决方案。通过Tracing、Metric和Log等技术,阿里云增强了对容器网络、存储及多集群架构的监控能力,帮助客户实现高效运维和成本优化。未来,结合AI助手,将进一步提升问题定位和解决效率,缩短MTTR,助力构建智能运维体系。
|
12天前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
22天前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
90 12
|
27天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
60 2

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版