CoreOS集成Kubernetes核心组件Kubelet

简介: 本文讲的是CoreOS集成Kubernetes核心组件Kubelet,【编者的话】本文为CoreOS官方博客发布的新闻和说明,介绍了CoreOS中对Kubernetes的核心组件kubelet的集成和支持。
本文讲的是CoreOS集成Kubernetes核心组件Kubelet, 【编者的话】本文为CoreOS官方博客发布的新闻和说明,介绍了CoreOS中对Kubernetes的核心组件kubelet的集成和支持。通过在CoreOS中安装和使用Kubelet,演示了Kubelet的使用技巧,以及如何在Kubernetes中更好的管理和监控容器资源 。

这周我们在CoreOS Linux的 alpha开发版 中集成了kubelet——Kubernetes的一个核心内嵌组件。 Kubelet 负责维护pod(应用实例)集合。Pod集合由本地系统的一个或多个容器构成。在Kubernetes集群中,kubelet作为本地代理,通过访问Kubernetes的API服务器,监控PodSpecs的状态。Kubelet也负责注册节点到Kubernetes,发送事件和pod状态,汇报资源利用率。

Kubelet在Kubernetes集群中扮演着非常重要的角色,但它也可以在单机(standalone)模式下工作。这篇文章接下来将会重点介绍运行在单机模式下的Kubelet,比如运行单节点的Kubernetes集群,借助  cAdvisor  内建工具监控容器资源利用率。

首先我们要安 kubelet并运行起来。请在CoreOS Linux 773.1.0或更新版本中使用本指南。

用systemd配置Kubelet

CoreOS Linux默认集成了kubelet,并做了安全优化和易用性优化。但我们将会放宽安全限制以支持高级容器。这需要在单节点Kubernetes 上跑代理组件,该组件需要iptables的操作权限,以方便配置 Kubernetes的服务发现模型。

创建 kubelet systemd(系统管理守护进程) 单元

sudo vim /etc/systemd/system/kubelet.service

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes

[Service]
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStart=/usr/bin/kubelet \
--api-servers=http://127.0.0.1:8080 \
--allow-privileged=true \
--config=/etc/kubernetes/manifests \
--v=2
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

启动kubelet服务

配置好systemd单元文件后,使用 systemctl 命令启动Kubelet:
sudo systemctl daemon-reload
sudo systemctl start kubelet

为确保kubelet能开机自启动,需要激活服务:
sudo systemctl enable kubelet

这时kubelet服务应该已经跑起来了。你可以用 systemctl 状态命令确认:
sudo systemctl status kubelet

启动一个单节点Kubernetes集群

Kubelet提供了一个非常方便的接口来管理容器。Kubelet有一个清单(manifest)字典,每20秒会默认监控一次以更新pod的manifest文件。在这之前, 需要通过Kubelet Systemd单元中的 --config 标志配置文件目录 /etc/kubernetes/manifests。

Pod manifest文件用JSON或YAML文件格式化并描述文件卷集合和一个或多个容器。我们可以使用一个在manifest目录的pod manifest,部署一个单节点Kubernetes集群。

下载 Kubernetes pod manifest

wget https://raw.githubusercontent.com/coreos/pods/master/kubernetes.yaml

在互联网下载pod manifest会有存在安全风险,所以请在使用它们之前检查所有pod manifest的内容。
cat kubernetes.yaml

此时我们只需要拷贝 kubernetes.yaml 这个pod manifest到kubelet的manifest目录以启动单节点集群。
sudo cp kubernetes.yaml /etc/kubernetes/manifests/

复制完成后,你可以使用标准Docker命令行工具看到Docker镜像和容器启动:
sudo docker images sudo docker ps

几分钟后,Kubernetes集群就可以运行起来了。接下来你可以下载官方的Kubernetes客户端工具。

下载 Kubernetes 客户端

kubectl 是官方的命令行工具,用于和Kubernetes集群交互。每个Kubernetes的发行版都包含一个新的kublet版本。下载并更改它为可执行程序:
wget https://storage.googleapis.com/kubernetes-release/release/v1.0.3/bin/linux/amd64/kubectl
chmod +x kubectl

Kubectl可用于获取运行的集群信息。
./kubectl cluster-info

Kubernetes master运行在 http://localhost:8080
kubectl 也可用于启动pods。
./kubectl run nginx --image=nginx

get pods 命令查看运行的 pods:
./kubectl get pods

更多Kubernetes细节请翻阅  Kubernetes on CoreOS docs

用cAdvisor监控容器

Kubelet内置打包了 cAdvisor ,它用于收集、合计、处理并导出给定系统的运行中容器的信息。cAdvisor 包含内置web接口,可通过4194端口访问。

[ cadvisor web 界面 ]
cadvisor-root.png

通过cAdvisor web UI,可很方便查看系统资源利用状况和处理列表。

[ 系统利用状况图 ]
cadvisor-gauge.png

cAdvisor也可用于监控特殊容器,例如在Kubernetes pod里运行的 kube-apiserver:

[ 用 cadvisor查看容器信息 ]
cadvisor-inspect.png

想了解更多cAdvisor信息请翻阅 upstream docs

CoreOS和Kubernetes的更多信息

CoreOS Linux镜像中集成kubelet表明我们对(支持)Kubernetes的承诺和要为我们用户带来最好的开源容器技术的(决心)。原生支持了 Kubernetes kubelet ,我们希望提升Kubernetes的部署效率,并提供健壮的接口以管理和监控CoreOS系统上的容器。

如果你对Kubernetes有兴趣,请务必出席在你的城市即将开展的 Kubernetes的一些培训 。如果你想要私人的在线培训,请 联系我们

原文链接:Introducing the Kubernetes kubelet in CoreOS Linux(翻译:沈冠璞)

原文发布时间为:2015-08-19
本文作者:沈冠璞 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:CoreOS集成Kubernetes核心组件Kubelet
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
存储 Kubernetes 监控
Docker与Kubernetes集成挑战及方案
面对这些挑战,并不存在一键解决方案。如同搭建灌溉系统需要考虑多种因素,集成Docker与Kubernetes也需要深思熟虑的规划、相当的技术知识和不断的调试。只有这样,才能建立起一个稳定、健康、高效的Docker-Kubernetes生态,让你的应用像花园中的植物一样繁荣生长。
211 63
|
7月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
262 0
|
8月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
432 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
Prometheus Kubernetes 监控
Prometheus 与 Kubernetes 的集成
【8月更文第29天】随着容器化应用的普及,Kubernetes 成为了管理这些应用的首选平台。为了有效地监控 Kubernetes 集群及其上的应用,Prometheus 提供了一个强大的监控解决方案。本文将详细介绍如何在 Kubernetes 集群中部署和配置 Prometheus,以便对容器化应用进行有效的监控。
823 4
|
Kubernetes API 调度
Kubernetes 架构解析:理解其核心组件
【8月更文第29天】Kubernetes(简称 K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。它提供了一个可移植、可扩展的环境来运行分布式系统。本文将深入探讨 Kubernetes 的架构设计,包括其核心组件如何协同工作以实现这些功能。
851 2
|
9月前
|
人工智能 数据可视化 开发者
FlowiseAI:34K Star!集成多种模型和100+组件的 LLM 应用低代码开发平台,拖拽组件轻松构建程序
FlowiseAI 是一款开源的低代码工具,通过拖拽可视化组件,用户可以快速构建自定义的 LLM 应用程序,支持多模型集成和记忆功能。
643 14
FlowiseAI:34K Star!集成多种模型和100+组件的 LLM 应用低代码开发平台,拖拽组件轻松构建程序
|
移动开发 数据可视化 小程序
可视化集成相当优秀ucharts图表组件
可视化集成相当优秀ucharts图表组件
152 4
|
12月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
972 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
Prometheus Kubernetes 监控
Grafana 与 Kubernetes 的集成
【8月更文第29天】Grafana 是一个开源的仪表板和可视化平台,它支持多种数据源,可以用来创建美观的仪表板和图表。Kubernetes (K8s) 是一个流行的容器编排平台,用于自动化容器应用的部署、扩展和管理。将 Grafana 与 Kubernetes 集成起来,可以方便地监控 Kubernetes 集群的状态和性能指标。本文将详细介绍如何配置和使用 Grafana 来监控 Kubernetes 集群。
441 4
|
Kubernetes 容器
Kubernetes附加组件Dashboard部署实战篇
关于如何在Kubernetes集群中部署和配置Dashboard组件的详细实战指南,涵盖了从创建证书、部署Dashboard、设置服务访问到登录认证的完整流程。
1311 0
Kubernetes附加组件Dashboard部署实战篇

推荐镜像

更多