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 web UI,可很方便查看系统资源利用状况和处理列表。

[ 系统利用状况图 ]

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

[ 用 cadvisor查看容器信息 ]

想了解更多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

时间: 2024-10-01 08:13:17

CoreOS集成Kubernetes核心组件Kubelet的相关文章

集成 Kubernetes 的 OpenStack 即将推出

OpenStack 公司 Mirantis 和 CoreOS于上周宣布,他们将合作推出集成 CoreOS 的 Tectonic 容器平台的 OpenStack 版本.这两家公司将一起为企业提供同时使用 OpenStack 和 Kubernetes 的能力.Kubernets 就是 Google 孵化的容器管理和调度工具,在一个平台上提供"企业级的支持和管理能力"(注:Kubernetes 已经成为 Tectonic 的一部分). 在某种程度上,OpenStack 作为一个类似 AWS

Mirantis与CoreOS将共同发起企业级的OpenStack、Kubernetes集成平台

本文讲的是Mirantis与CoreOS将共同发起企业级的OpenStack.Kubernetes集成平台,[编者的话] 8月6日,OpenStack服务提供商Mirantis与CoreOS宣布他们将合作开发Mirantis版OpenStack与CoreOS的Tectonic集成的平台.当下,这两家公司已经可以给企业用户提供OpenStack与Kubernetes的整合服务,并可以提供企业级的支持与管理. 8月6日,OpenStack服务提供商Mirantis与CoreOS宣布他们将合作开发Mi

【Container讲师】CoreOS+Kubernetes搭建Docker运行环境

2014年10月18日,CSDN&<程序员>主办的2014 Container技术大会(Container Conference 2014)将在北京召开,国内外Container技术人员和企业实践用户将首次齐聚北京.Docker.Google Kubernetes.VMware.CoreOS.国内互联网企业及初创技术团队的Container技术专家及一线开发者将分享他们在生产环境中的Container项目经验和最佳实践方案. 我们特别邀请到北京数字睿博科技发展有限公司创始人桂阳.他在2

在阿里云上部署生产级别Kubernetes集群

阿里云是国内非常受欢迎的基础云平台,随着Kubernetes的普及,越来越多的企业开始筹划在阿里云上部署自己的Kubernetes集群.本文将结合实战中总结的经验,分析和归纳一套在阿里云上部署生产级别Kubernetes集群的方法.文中所采取的技术方案具有一定的主观性,供各位读者参考.在实践中可以根据具体使用场景进行优化. 目标 当我们刚接触Kubernetes进行测试集群的搭建时,往往会选择一篇已有的教程,照着教程完成集群搭建.我们很少去质疑教程作者每一步操作的合理性,只想快点把集群搭建起来,

Kubernetes基本要素介绍

本文讲的是Kubernetes基本要素介绍,[编者的话]Rimas Mocevicius是云计算. CoreOS . Kubernetes .DEIS和应用程序容器解决方案架构师 .CoreOS Essentials一书作者.目前就职于DEIS.本文是其发表在DEIS上的官方博客,介绍Kubernetes的系列教程的第一篇. Kubernetes是在群集中管理跨多台主机容器化应用的开源系统. Kubernetes提供了应用部署.调度.更新.维护和扩缩的机制.Kubernetes的一个重要特点是,

Kubernetes网络概述

[编者的话]本文比较了Kubernetes和Docker的网络模型,并对Kubernetes的网络模拟做了重点阐述,对Kubernetes的网络插件作了比较. 本文讲的是Kubernetes网络概述容器编排技术是当今最火的IT技术之一.不可否认,Docker技术促进了数据中心的发展,并为微服务架构在开发和运维中的实践奠定了基础. 工作在Sun公司的John Gage 曾说:" 网络就是计算机." 为了能充分发挥计算机的功能,必须让计算机之间互相连接.因此,除非你的服务是简单的并且不需要

CoreOS Fest 系列之第二篇: Systemd、Go、Calico、Sysdig

本文讲的是CoreOS Fest 系列之第二篇: Systemd.Go.Calico.Sysdig,[编者的话]在 CoreOS Fest 第二天的会议中,演讲者展示了多个开源项目和工具,包括 Systemd 和 CoreOS . Go 语言和容器. Calico 项目. Sysdig 等. 在 CoreOS Fest 的第一天会议中,陆续介绍了 CoreOS 的架构.规划和规范.第二天的会议,演讲者展示了多个开源项目和工具,包括 systemd-nspawn . Calico 项目和 Sysd

Kubernetes的四种用户部署场景

本文讲的是Kubernetes的四种用户部署场景[编者的话]这是一篇介绍生产环境使用Kubernetes的用户部署场景. [深入浅出学习 etcd]etcd为分布式系统提供可靠.高效的配置管理服务,在Docker.Kubernetes.Mesos等平台中扮演了越来越重要的角色.作为2013年开始的项目,它还很年轻,官方文档中缺乏实现上全面.系统的介绍,本课程深入浅出地介绍了etcd的实现,并为运维和二次开发提供了系统的指导和建议. Kubernetes可以作为容器编排引擎.PaaS或者作为云原生

Apprenda发布Kubernetes自动化运维工具KET

在美国西雅图KubeCon大会上,Apprenda发布了开源工具Kismatic Enterprise Toolkit(KET)的1.0.0版本,并为它提供商业支持.KET为开发和运营人员提供了一套工具,用于对生产环境Kubernetes容器集群的设计.部署和运营进行自动化.KET套件和它的源代码可以从Apprenda的Github主页下载,它的发行基于Apache 2.0协议. 谷歌在今年早些时候向Cloud Native Computing Foundation(CNCF)贡献了它的开源容器