如何在CoreOS集成Kubernetes核心组件Kubelet

如何在CoreOS集成Kubernetes核心组件Kubelet

作者:翻译:沈冠璞 2015-08-27 13:23:42

云计算 本文为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(系统管理守护进程) 单元

  
 
 
 
  1. sudo vim /etc/systemd/system/kubelet.service
  
 
 
 
  1. [Unit]
  2. Description=Kubernetes Kubelet
  3. Documentation=https://github.com/kubernetes/kubernetes
  4. [Service]
  5. ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
  6. ExecStart=/usr/bin/kubelet \
  7. --api-servers=http://127.0.0.1:8080 \
  8. --allow-privileged=true \
  9. --config=/etc/kubernetes/manifests \
  10. --v=2
  11. Restart=on-failure
  12. RestartSec=5
  13. [Install]
  14. WantedBy=multi-user.target

启动kubelet服务

配置好systemd单元文件后,使用systemctl命令启动Kubelet:

  
 
 
 
  1. sudo systemctl daemon-reload
  2. sudo systemctl start kubelet

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

  
 
 
 
  1. sudo systemctl enable kubelet

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

  
 
 
 
  1. 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

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

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

  
 
 
 
  1. cat kubernetes.yaml

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

  
 
 
 
  1. sudo cp kubernetes.yaml /etc/kubernetes/manifests/

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

  
 
 
 
  1. sudo docker images sudo docker ps

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

下载 Kubernetes 客户端

kubectl是官方的命令行工具,用于和Kubernetes集群交互。每个Kubernetes的发行版都包含一个新的kublet版本。下载并更改它为可执行程序:

  
 
 
 
  1. wget https://storage.googleapis.com/kubernetes-release/release/v1.0.3/bin/linux/amd64/kubectl
  2. chmod +x kubectl

Kubectl可用于获取运行的集群信息。

  
 
 
 
  1. ./kubectl cluster-info

Kubernetes master运行在http://localhost:8080。

kubectl也可用于启动pods。

  
 
 
 
  1. ./kubectl run nginx --image=nginx

用get pods命令查看运行的 pods:

  
 
 
 
  1. ./kubectl get pods

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

#p#

用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系统上的容器。

网页名称:如何在CoreOS集成Kubernetes核心组件Kubelet
本文地址:http://www.36103.cn/qtweb/news8/13408.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联