Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6790875
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 架构设计与优化

2015-08-20 21:21:22

CoreOS Linux引入了Kubernetes kubelet

[日期:2015-08-20] 来源:dockone.io  作者:沈冠璞 [字体:  ]

本文为 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 集群中扮演重要角色的同时,也可以在单机模式工作。这篇文章接下来将会重点介绍在单机模式也即运行 Kubernetes 集群的但节点下使用 Kubelet 的技巧,和如何借助 cAdvisor 内建工具利用 Kubelet 监控容器资源利用率。 

首先我们要安装 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=

[Service]
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStart=/usr/bin/kubelet \
--api-servers=\
--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,部署一个单节点 Kubernets 集群。

下载 Kubernetes pod manifest

wget 
	


在互联网下载 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 
chmod +x kubectl


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

./kubectl cluster-info


Kubernetes master 运行在  /> kubectl 也可用于启动 pods

./kubectl run nginx --image=nginx


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

./kubectl get pods


更多 Kubernets 细节请翻阅 
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 的一些培训。更多安排会提上日程并回顾记录。如果你想要私人的在线培训,请 联系我们

在CoreOS下部署WordPress实例教程 

服务器操作系统CoreOS初体验 

CoreOS 实战:剖析 etcd  

CoreOS 实战:CoreOS 及管理工具介绍  

[教程]在 CoreOS 上构建你的第一个应用  

CoreOS 的详细介绍请点这里
CoreOS 的下载地址请点这里 

原文链接:Introducing the Kubernetes kubelet in CoreOS Linux

本文永久更新链接地址

阅读(838) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~