东莞制作网站公司哪家好,域名网址注册,达内教育学费价目表,怎样在建立公司网站DaemonSet 保证在每个 Node 上都运行一个容器副本#xff0c;常用来部署一些集群的日志、监控或者其他系统管理应用。下面以日志收集 fluentd 为例#xff0c;看下如何使用阿里云容器服务控制台创建DaemonSet。
准备Kubernetes环境
在阿里云容器服务控制台中创建Kubernetes…DaemonSet 保证在每个 Node 上都运行一个容器副本常用来部署一些集群的日志、监控或者其他系统管理应用。下面以日志收集 fluentd 为例看下如何使用阿里云容器服务控制台创建DaemonSet。
准备Kubernetes环境
在阿里云容器服务控制台中创建Kubernetes 集群(1.11.5)3 master3 worker
安装fluentd
1、选择应用-守护进程集-使用镜像创建 填写应用名称选择部署集群、命名空间进入下一步
2、选择镜像并进行相应配置 注意这里挂载了配置项fluentd-conf用来覆盖镜像中的默认配置需要提前创建出来内容如下
apiVersion: v1
kind: ConfigMap
metadata:name: fluentd-confnamespace: kube-system
data:td-agent.conf: |match fluent.**type null/matchsourcetype tailpath /var/log/containers/*.logpos_file /var/log/es-containers.log.postime_format %Y-%m-%dT%H:%M:%S.%NZtag kubernetes.*format jsonread_from_head true/sourcefilter kubernetes.**type kubernetes_metadataverify_ssl false/filter
否则会遇到pod 启动问题
[error]: config error file/etc/td-agent/td-agent.conf errorInvalid Kubernetes API v1 endpoint https://172.21.0.1:443/api: SSL_connect returned1 errno0 stateerror: 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 errorException 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-accountnamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:name: fluent-account
roleRef:kind: ClusterRolename: viewapiGroup: rbac.authorization.k8s.io
subjects:- kind: ServiceAccountname: fluent-accountnamespace: kube-system
创建成功后更新fluent-es 的yaml编辑yaml提交更新。 Pod启动成功日志已经可以正常采集了。
原文链接 本文为云栖社区原创内容未经允许不得转载。