博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云容器服务DaemonSet实践
阅读量:7117 次
发布时间:2019-06-28

本文共 1889 字,大约阅读时间需要 6 分钟。

DaemonSet 保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。下面以日志收集 fluentd 为例,看下如何使用阿里云容器服务控制台创建DaemonSet。

准备Kubernetes环境

在阿里云容器服务控制台中创建Kubernetes 集群(1.11.5),3 master,3 worker

安装fluentd

1、选择应用->守护进程集->使用镜像创建

填写应用名称,选择部署集群、命名空间,进入下一步

2、选择镜像并进行相应配置

注意:这里挂载了配置项fluentd-conf,用来覆盖镜像中的默认配置,需要提前创建出来,内容如下:

apiVersion: v1kind: ConfigMapmetadata:  name: fluentd-conf  namespace: kube-systemdata:  td-agent.conf: |    
type null
type tail path /var/log/containers/*.log pos_file /var/log/es-containers.log.pos time_format %Y-%m-%dT%H:%M:%S.%NZ tag kubernetes.* format json read_from_head true
type kubernetes_metadata verify_ssl false

否则会遇到pod 启动问题

[error]: config error file="/etc/td-agent/td-agent.conf" error="Invalid Kubernetes API v1 endpoint https://172.21.0.1:443/api: SSL_connect returned=1 errno=0 state=error: certificate verify failed"

3、设置更新策略

可以在高级配置中选择升级方式:

  • 滚动升级(RollingUpdate):更新 DaemonSet 模版后,自动删除旧的 Pod 并创建新的 Pod
  • 替换升级(OnDelete):更新模板后,只有手动删除了旧的 Pod 后才会创建新的 Pod

4、指定节点调度

只选择worker节点安装。设置节点亲和性如图。

5、创建完成

点击创建,可以看到创建成功。

6、问题排查与更新

按着上述步骤可以看到在3个worker节点分别起了对应的pod,但pod并没有成功启动。选择其中的一个容器,查看一下日志发现如下错误:

config error file="/etc/td-agent/td-agent.conf" error="Exception encountered fetching metadata from Kubernetes API endpoint: pods is forbidden: User cannot list pods at the cluster scope"

Google后发现需要设置ClusterRole

apiVersion: v1kind: ServiceAccountmetadata:  name: fluent-account  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata:  name: fluent-accountroleRef:  kind: ClusterRole  name: view  apiGroup: rbac.authorization.k8s.iosubjects:  - kind: ServiceAccount    name: fluent-account    namespace: kube-system

创建成功后更新fluent-es 的yaml,编辑yaml,提交更新。

Pod启动成功,日志已经可以正常采集了。

总结

使用阿里云容器服务控制台支持方便的创建DaemonSet,欢迎使用体验。


本文作者:来随便逛逛

本文为云栖社区原创内容,未经允许不得转载。

你可能感兴趣的文章
pycharm环境下:同文件夹下文件(.py)之间的调用,出现红线问题
查看>>
log4j日志级别
查看>>
【重磅】Spring Boot 2.1.0 权威发布
查看>>
网络开发必备的HTTP协议知识
查看>>
VC++中遇到的各种数据类型BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR...
查看>>
404 – File or directory not found.
查看>>
How To Use Google Logging Library (glog)
查看>>
home 解析
查看>>
新浪微博Failed to receive access token
查看>>
ASP.NET开发,从二层至三层,至面向对象
查看>>
AESDK从流中获得变换信息
查看>>
转载:JAVA中获取项目文件路径
查看>>
Java集合之LinkedList源码分析
查看>>
二分查找(递归和非递归实现)
查看>>
background-size background-positon合并的写法
查看>>
Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
查看>>
Nova 组件详解 - 每天5分钟玩转 OpenStack(26)
查看>>
使用JSP表达式和JSP脚本打印九九乘法表
查看>>
QT笔记之QLineEdit自动补全以及控件提升
查看>>
2016第30周日
查看>>