CoreOS Linux引入了Kubernetes kubelet

作者:Kelsey Hightower

2015年8月14日

这周我们在 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=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=
Restart=on-failure
RestartSec= [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 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

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

用 cAdvisor 监控容器

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

cadvisor web 界面.

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

System utilization information.

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

cadvisor查看容器信息.

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

CoreOS 和 Kubernetes的更多信息

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

如果你对 Kubernetes 有兴趣,请务必出席在你的城市即将开展的Kubernetes的一些培训。更多安排会提上日程并回顾记录。如果你想要私人的在线培训,请联系我们

CoreOS Linux引入了Kubernetes kubelet的更多相关文章

  1. CoreOS Linux available in China

    CoreOS Linux 竭诚服务中国用户 今天,我们宣布一个令人振奋的消息 - CoreOS Linux 开源版本正式向中国地区提供服务!国内的用户们现在可以使用安全.自动的 CoreOS Linu ...

  2. kubernetes kubelet组件中cgroup的层层"戒备"

    cgroup是linux内核中用于实现资源使用限制和统计的模块,docker的风靡一时少不了cgroup等特性的支持.kubernetes作为容器编排引擎,除了借助docker进行容器进程的资源管理外 ...

  3. Kubernetes - Kubelet TLS Bootstrapping

    一.简单说明 写这个的初衷是自己搜索TLS Bootstrapping的时候没有搜到自己想要的东西,因为TLS Bootstrapping经过很多版本之后也发生了一些变化,所以网上很多也是老的内容了. ...

  4. linux(centos8):安装kubernetes worker节点并加入到kubernetes集群(kubernetes 1.18.3)

    一,安装kubernetes前的准备工作      安装前的准备工作(master\worker都要进行)      参见: https://www.cnblogs.com/architectfore ...

  5. Kubernetes Kubelet安全认证连接Apiserver

    Kubelet使用安全认证连接Apiserver,可以用Token或证书连接.配置步骤如下. 1,生成Token命令 head -c /dev/urandom | od -An -t x | tr - ...

  6. linux运维、架构之路-Kubernetes离线集群部署-无坑

    一.部署环境介绍 1.服务器规划 系统 IP地址 主机名 CPU 内存 CentOS  7.5 192.168.56.11 k8s-node1 2C 2G CentOS  7.5 192.168.56 ...

  7. linux运维、架构之路-Kubernetes集群部署TLS双向认证

    一.kubernetes的认证授权       Kubernetes集群的所有操作基本上都是通过kube-apiserver这个组件进行的,它提供HTTP RESTful形式的API供集群内外客户端调 ...

  8. linux运维、架构之路-Kubernetes离线、二进制部署集群

    一.Kubernetes对应Docker的版本支持列表 Kubernetes 1.9 <--Docker 1.11.2 to 1.13.1 and 17.03.x Kubernetes 1.8 ...

  9. CoreOS, Kubernetes, etcd

    CoreOS CoreOS Container Linux is the leading container operating system, designed to be managed and ...

随机推荐

  1. css 水平垂直居中

    主要是垂直居中有点麻烦,以下代码可以实现,先记下来: <style type="text/css"> div{ border:1px solid #ccc; heigh ...

  2. 山东省第七届ACM省赛------Fibonacci

    Fibonacci Time Limit: 2000MS Memory limit: 131072K 题目描述 Fibonacci numbers are well-known as follow: ...

  3. error: could not read CFBundleIdentifier from Info.plist (null)解决方法之一

    出现这种错误的原因可能很多,以下是我遇到的一种情况: 项目移植到新的环境 编译报错:  error: could not read CFBundleIdentifier from Info.plist ...

  4. JavaScript浏览器对象(BOM)中有关设备、浏览器屏幕高度和宽度的API介绍

    JavaScript世界中,有很多看起来能够帮我们知道网页宽度和高度的API,但太繁多了,而且容易弄混.不容易区分它们.下面我就来介绍一下,这些API到底是什么意思,之间的区别又在哪里. 一.设备的分 ...

  5. ubuntu文件夹建立软链接方法

    1:预备知识 -s 是代号(symbolic)的意思. 这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化:第二,ln的链接又软链 ...

  6. ElasticSearch5中文分词(IK)

    ElasticSearch安装 官网:https://www.elastic.co 1.ElasticSearch安装 1.1.下载安装公共密钥 rpm --import https://artifa ...

  7. Linux关机和重启命令

    shutdown shutdown [选项] 时间 选项: -c : 取消一个关机命令 -h : 关机 -r : 重启 [root@localhost ~]# date Tue Dec 6 21:06 ...

  8. Mifare系列6-射频卡与读写器的通信(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...

  9. 《与小卡特一起学Python》 Code5 for循环

    import time for i in range(10,0,-1): print i time.sleep(1) print "Blast off!" 以上代码循环意思为: 从 ...

  10. session失效

    今天写页面时,使用了session 设置session后 跳转页面session就丢失 上网查了一下也没有很好的解决办法 也没有说原因. 在自己本地电脑上写了两个页面测试一下,完全正常.但是上传到服务 ...