设为首页 收藏本站
查看: 1588|回复: 0

[经验分享] CoreOS Linux引入了Kubernetes kubelet

[复制链接]

尚未签到

发表于 2018-1-4 17:14:21 | 显示全部楼层 |阅读模式
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=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 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的一些培训。更多安排会提上日程并回顾记录。如果你想要私人的在线培训,请联系我们。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431591-1-1.html 上篇帖子: docker kubernetes 下篇帖子: Kubernetes Ingress实战
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表