阿里云容器服务DaemonSet实践
DaemonSet 保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。下面以日志收集 fluentd 为例,看下如何使用阿里云容器服务控制台创建DaemonSet。
准备Kubernetes环境
在阿里云容器服务控制台中创建Kubernetes 集群(1.11.5),3 master,3 worker
安装fluentd
1、选择应用->守护进程集->使用镜像创建
填写应用名称,选择部署集群、命名空间,进入下一步
2、选择镜像并进行相应配置
注意:这里挂载了配置项fluentd-conf,用来覆盖镜像中的默认配置,需要提前创建出来,内容如下:
apiVersion: v1 kind: ConfigMap metadata: name: fluentd-conf namespace: kube-system data: td-agent.conf: | <match fluent.**> type null </match> <source> 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 </source> <filter kubernetes.**> type kubernetes_metadata verify_ssl false </filter>
否则会遇到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: v1 kind: ServiceAccount metadata: name: fluent-account namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: fluent-account roleRef: kind: ClusterRole name: view apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: fluent-account namespace: kube-system
创建成功后更新fluent-es 的yaml,编辑yaml,提交更新。
Pod启动成功,日志已经可以正常采集了。
总结
使用阿里云容器服务控制台支持方便的创建DaemonSet,欢迎使用体验。https://cs.console.aliyun.com/
本文作者:来随便逛逛
本文为云栖社区原创内容,未经允许不得转载。
相关推荐
CosEmon 2020-11-13
lihongtai 2020-11-09
sqisydream 2020-11-11
fjlmcy 2020-10-31
visionarywind 2020-10-31
特立独行 2020-10-30
Hitpoint云计算 2020-10-30
sqsfjsjlpf 2020-10-29
平凡的程序员 2020-10-15
yunna0 2020-09-23
OpenCDN网站加速 2020-09-21
82453961 2020-09-21
qual0 2020-09-21
mysteryrat 2020-09-21
Liucute 2020-09-21
古影轩 2020-09-17
aolia000 2020-09-11
罗忠浩 2020-08-16