influxdb安装 influxdb安装包大小

莫娜号 1

Flink Metrics指标采集方案

创建一个带Volume的Pod:

本文讨论的都是基于Flink On K8s场景下,该场景下存在几个特点,一是存在线上业务系统资源复用,二是调度存在"随机性",对现有的Flink Metrics采集及使用姿势提出了新的要求:

influxdb安装 influxdb安装包大小influxdb安装 influxdb安装包大小


influxdb安装 influxdb安装包大小


metrics.reporter.influxdb.password: qwerty

Flink任务自动扩缩容,智能诊断场景依赖Metrics指标进行加工分析处理,现有Promeus存储方案不再适合。

期望在Flink On K8s场景下,Flink Metrics指标采集,能够不依赖于基础环境,对扩缩容友好,,支持指标采集及分析数据存储统一,降低指标维护使用成本,对Flink Metrics指标采集方案进行调研

2.1.1、 原理架构图如下

2.1.2、 配置方式

将flink-metrics-promeus-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configurat也就是在etcd集群背景下,存在多个kube-apiserver,并用pod-保证仅是主可用。同时kube-sheduller和kube-controller-mar也存在多个,而且伴随着kube-apiserver 同一时间只能有一套运行。ion:

metrics.reporter.promgateway.host: localhost

metrics.reporter.promgateway.port: 90

metrics.reporter.promgateway.deleteOnShutdown: false

metrics.reporter.promgateway.groupingKey: k1=v1;k2=v2

metrics.reporter.promgateway.interval: 60 SECONDS

2.2.1、原理架构图如下

2.2.2、配置方式

将flink-metrics-promeus-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.prom.class: 9-9260

2.3..1、原理架构图如下

2.3.2、配置方式

将flink-metrics-influxdb-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.influxdb.factory.class: localhost

metrics.reporter.influxdb.port: 8086

metrics.reporter.influxdb.db: flink

metrics.reporter.influxdb.username: flink-metrics

metrics.reporter.influxdb.retentionPolicy: one_hour

metrics.reporter.influxdb.consistency: ANY

metrics.reporter.influxdb.connectTimeout: 60000

metrics.reporter.influxdb.writeTimeout: 60000

2.4.1、原理架构图如下

2.4.2、配置方式

将flink-metrics-jmx-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.jmx.factory.class: 9-9260

2.5.1、配置方式

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.slf4j.factory.class: 60 SECONDS

GraphiteReporter、StatsDReporter、DatadogHttpReporter

指标采集到Kafka后,将全量指标实时写入ClickHouse.

指标采集到Kafka后,将全量指标实时写入ClickHouse同时满足大盘需求及指标数据长期存储和二次加工分析,该方式优势指标数据源统一,任务大盘及告警

kubernetes 如何获取dashboard cpu使用率是怎么计算的

5. go语言二次开发

我们先从整体上看一下Kubernetes的一些理念和基本架构, 然后从网络、 资源管理、存储、服务发现、负载均衡、高可用、rolling upgrade、安全、等方面向大家简单介绍Kubernetes的这些主要特性。

当然也会包括一些需要注意的问题。主要目的是帮助大家快速理解 Kubernetes的主要功能,今后在研究和使用这个具的时候有所参考和帮助。

1.Kubernetes的一些理念:

用户不需要关心需要多少台机器,只需要关心软件(服务)运行所需的环境。以服务为中心,你需要关心的是api,如何把大服务拆分成小服务,如何使用api去整合它们。

保证系统总是按照用户指定的状态去运行。

不仅仅提给你供容器服务,同样提供一种软件系统升级的方式;在保持HA的前提下去升级系统是很多用户最想要的功能,也是最难实现的。

那些需要担心和不需要担心的事情。

更好的支持微服务理念,划分、细分服务之间的边界,比如lablel、pod等概念的引入。

对于Kubernetes的架构,可以参考文档。

大致由一些主要组件构成,包括Master上的kube-apiserver、kube-scheduler、kube-controller-mar、控制组件kubectl、状态存储etcd、Sle上的kubelet、kube-proxy,以及底层的网络支持(可以用Flannel、OpenVSwitch、Wee等)。

看上去也是微服务的架构设计,不过目前还不能很好支持单个服务的横向伸缩,但这个会在 Kubernetes 的未来版本中解决。

2.Kubernetes的主要特性

会从网络、服务发现、负载均衡、资源管理、高可用、存储、安全、等方面向大家简单介绍Kubernetes的这些主要特性 -> 由于时间有限,只能简单一些了。

另外,对于服务发现、高可用和的一些更详细的介绍,感兴趣的朋友可以通过这篇文章了解。

Kubernetes的网络方式主要解决以下几个问题:

a. 紧耦合的容器之间通信,通过 Pod 和 localhost 访问解决。

b. Pod之间通信,建立通信子网,比如隧道、路由,Flannel、Open vSwitch、Wee。

c. Pod和Serv,以及外部系统和Serv的通信,引入Serv解决。

Kubernetes的网络会给每个Pod分配一个IP地址,不需要在Pod之间建立链接,也基本不需要去处理容器和主机之间的端口映射。

注意:Pod重建后,IP会被重新分配,所以内网通信不要依赖Pod IP;通过Serv环境变量或者DNS解决。

注意:kube-proxy 在集群规模较大以后,可能会有访问的性能问题,可以考虑用其他方式替换,比如HAProxy,直接导流到Serv 的endpints 或者 Pods上。Kubernetes也在修复这个问题。

3)资源管理

有3 个层次的资源限DNS服务以addon的方式,需要安装skydns和kube2dns。kube2dns会通过读取Kubernetes API获取服务的clusterIP和port信息,同时以watch的方式检查serv的变动,及时收集变动信息,并将对于的ip信息提交给etcd存档,而skydns通过etcd内的DNS记录信息,开启53端口对外提供服务。大概的DNS的域名记录是servname.namespace.tenx.domain, “tenx.domain”是提前设置的主域名。制方式,分别在Container、Pod、Namespace 层次。Container层次主要利用容器本身的支持,比如Docker 对CPU、内存、磁盘、网络等的支持;Pod方面可以限制系统内创建Pod的资源范围,比如或者最小的CPU、memory需求;Namespace层次就是对用户级别的资源限额了,包括CPU、内存,还可以限定Pod、rc、serv的数量。

目前的资源分配计算也相对简单,没有什么资源抢占之类的强大功能,通过每个上的资源总量、以及已经使用的各种资源加权和,来计算某个Pod优先非配到哪些,还没有加入对实际可用资源的评估,需要自己的scheduler plugin来支持。其实kubelet已经可以拿到的资源,只要进行收集计算即可,相信Kubernetes的后续版本会有支持。

4)高可用

主要是指Master的 HA方式 利用etcd实现 选举,从多个Master中得到一个kube-apiserver 保证至少有一个可用,实现high ailability。对外以loadbalancer的方式提供入口。这种方式可以用作ha,但仍未成熟,据了解,未来会更新升级ha的功能。

5) rolling upgrade

RC 在开始的设计就是让rolling upgrade变的更容易,通过一个一个替换Pod来更新serv,实现服务中断时间的最小化。基本思路是创建一个复本为1的新的rc,并逐步减少老的rc的复本、增加新的rc的复本,在老的rc数量为0时将其删除。

通过kubectl提供,可以指定更新的镜像、替换pod的时间间隔,也可以rollback 当前正在执行的upgrade作。

同样, Kuberntes也支持多版本同时部署,并通过lable来进行区分,在serv不变的情况下,调整支撑服务的Pod,测试、新Pod的工作情况。

6)存储

大家都知道容器本身一般不会对数据进行持久化处理,在Kubernetes中,容器异常退出,kubelet也只是简单的基于原有镜像重启一个新的容器。另外,如果我们在同一个Pod中运行多个容器,经常会需要在这些容器之间进行共享一些数据。Kuberenetes 的 Volume就是主要来解决上面两个基础问题的。

Docker 也有Volume的概念,但是相对简单,而且目前的支持很有限,Kubernetes对Volume则有着清晰定义和广泛的支持。其中最核心的理念:Volume只是一个目录,并可以被在同一个Pod中的所有容器访问。而这个目录会是什么样,后端用什么介质和里面的内容则由使用的特定Volume类型决定。

spec.volumes 指定这个Pod需要的volume信息 spec.containers.volumeMounts 指定哪些container需要用到这个Volume Kubernetes对Volume的支持非常广泛,有很多贡献者为其添加不同的存储支持,也反映出Kubernetes社区的活跃程度。

emptyDir 随Pod删除,适用于临时存储、灾难恢复、共享运行时数据,支持 RAM-backed filehostPath 类似于Docker的本地Volume 用于访问一些本地资源(比如本地Docker)。

gcePersistentDisk GCE disk - 只有在 Google Cloud Engine 平台上可用。

awsElasticBlockStore 类似于GCE disk 必须是 AWS EC2的实例 nfs - 支持网络文件系统。

rbd - Rados Block Dev - Ceph

secret 用来通过Kubernetes API 向Pod 传递敏感信息,使用 tmpfs (a RAM-backed file)

persistentVolumeClaim - 从抽象的PV中申请资源,而无需关心存储的提供方

glusterfs

is用户名密码写在URL中csi

gitRepo

根据自己的需求选择合适的存储类型,反正支持的够多,总用一款适合的 :)

7)安全

一些主要原则:

基础设施模块应该通过API server交换数据、修改系统状态,而且只有API server可以访问后端存储(etcd)。

把用户分为不同的角色:Dlopers/Project Admins/Administrators。

允许Dlopers定义secrets 对象,并在pod启动时关联到相关容器。

以secret 为例,如果kubelet要去pull 私有镜像,那么Kubernetes支持以下方式:

通过docker login 生成 .dockercfg 文件,进行全局授权。

认证 (Authentication)

API server 支持证书、token、和基本信息三种认证方式。

授权 (Authorization)

通过apiserver的安全端口,authorization会应用到所有的请求上

AlwaysDeny、AlwaysAllow、ABAC三种模式,其他需求可以自己实现Authorizer接口。

比较老的版本Kubernetes需要外接caisor主要功能是将node主机的container metrics抓取出来。在较新的版本里,caior功能被集成到了kubelet组件中,kubelet在与docker交互的同时,对外提供服务。

Kubernetes集群范围内的主要由kubelet、heapster和storage backend(如influxdb)构建。Heapster可以在集群范围获取metrics和数据。它可以以pod的方式运行在k8s平台里,也可以单独运行以standalone的方式。

注意: heapster目前未到1.0版本,对于小规模的集群比较方便。但对于较大规模的集群,heapster目前的cache方式会吃掉大量内存。因为要定时获取整个集群的容器信息,信息在内存的临时存储成为问题,再加上heaspter要支持api获取临时metrics,如果将heapster以pod方式运行,很容易出现OOM。所以目前建议关掉cache并以standalone的方式出k8s平台。

mac安装influxdb及golang的简单调用

基本命令:

1.mac肯定是brew通过在每个namespace上创建用户的secret对象,在创建Pod时指定 imagePullSecrets 属性(也可以统一设置在servAcouunt 上),进行授权。安装啦

cache-ma将flink-metrics-slf4j-1.14.3.jar 包放入到flink安装目录/lib下x-memory-size是用来配置缓存的

2.启动客户端

3.基本作

Flink Metrics指标采集方案

当配置了admin认证用户之后,进行的api请求的时候就要带上用户名和密码的参数,不然无法执行,示例如下:

本文讨论的都是基于Flink On K8s场景下,该场景下存在几个特点,一是存在线上业务系统资源复用,二是调度存在"随机性",对现有的Flink Metrics采集及使用姿势提出了新的要求:

LAMP和LNMP的架构

Flink任务自动扩缩容,智能诊断场景依赖Metrics指标进行加工分析处理,现有Promeus存储方案不再适合。

期望在Flink On K8s场景下,Flink Metrics指标采集,能够不依赖于基础环境,对扩缩容友好,,支持指标采集及分析数据存储统一,降低指标维护使用成本,对Flink Metrics指标采集方案进行调研

2.1.1、 原理架构图如下

2.1.2、 配置方式

将flink-metrics-promeus-1.14.3.jar 包放入到flink安装目录/lib下

修改flinmetrics.reporter.promgateway.randomJobNameSuffix: truek-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.promgateway.host: localhost

metrics.reporter.promgateway.port: 90

metrics.reporter.promgateway.deleteOnShutdown: false

metrics.reporter.promgateway.groupingKey: k1=v1;k2=v2

metrics.reporter.promgateway.interval: 60 SECONDS

2.2.1、原理架构图如下

2.2.2、配置方式

将flink-metrics-promeus-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.prom.class: 9-9260

2.3..1、原理架构图如下

2.3.2、配置方式

将flink-metrics-influxdb-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.influxdb.factory.class: localhost

metrics.reporter.influxdb.port: 8086

metrics.reporter.influxdb.db: flink

metrics.reporter.influxdb.username: flink-metrics

metrics.reporter.influxdb.retentionPolicy: one_hour

metrics.reporter.influxdb.consistency: ANY

metrics.reporter.influxdb.connectTimeout: 60000

metrics.reporter.influxdb.writeTimeout: 60000

2.4.1、原理架构图如下

2.4.2、配置方式

将flink-metrics-jmx-1.14.3.jar 包放入到flink安装目录/lib下

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.jmx.factory.class: 9-9260

2.5.1、配置方式

修改flink-conf.yaml配置文件,设置属性

Example configuration:

metrics.reporter.slf4j.factory.class: 60 SECONDS

GraphiteReporter、StatsDReporter、DatadogHttpReporter

指标采集到Kafka后,将全量指标实时写入ClickHouse.

指标采集到Kafka后,将全量指标实时写入ClickHouse同时满足大盘需求及指标数据长期存储和二次加工分析,该方式优势指标数据源统一,任务大盘及告警

8. InfluxDB配置admin用户认证登陆

不管是yum安装,亦或者是docker安装的方式,influxdb默认安装完毕之后,并不会自带用户认证的功能,直接就可以进行访问的了。

情况如下:

或者c直接查询出来数据,不需要用户认证,如下:

对于这种不设置防备的措施,总体来说,不是很好。

所以,下面来看看怎么设置用户认证。

实际作如下:

默认情况下,influxdb的配置文件是禁用认证策略的,所以需要修改设置一下。

编辑配置文件 vim /etc/influxdb/influxdb.conf ,把 [] 下的 auth-enabled 选项设置为 true 。

在配置启动认证以及重启influxdb之后,如果不使用admin用户登陆,则会报错如下:

这里使用admin认证用户登陆访问一下,格式如下:

执行如下:

执行如下:

其中增加 ?pretty=true 可以将kube-proxy和DNS, 在v1之前,Serv含有字段portalip 和publicIPs, 分别指定了服务的虚拟ip和服务的出口机ip,publicIPs可任意指定成集群中任意包含kube-proxy的,可多个。portalIp 通过NAT的方式跳转到container的内网地址。在v1版本中,publicIPS被约定废除,标记为deprecatedPublicIPs,仅用作向后兼容,portalIp也改为ClusterIp, 而在serv port 定义列表里,增加了nodePort项,即对应node上映射的服务端口。 json 展开显示。

当然设置了用户认证之后,写入数据既有的指标采集需要先落本地,再由nodeexporter或lancer导出到目标存储,强依赖于Local环境,线上业务系统资源环境异较大,扩容等维护成本较高,资源隔离性不够好。的时候也要带上用户名以及密码 &u=username&p=password ,如下:

用户名密码写在HTTP头Authorization选项

下面来执行一下:

查看插入后的influxdb数据,如下:metrics.reporter.promgateway.class: 运维工程师需要掌握什么技能? metrics.reporter.promgateway.jobName: myJob

一、Linux 基础部分

8)

1、基础理论知识

2、基础命令(系统命令、目录管理、用户管理、文件权限、磁盘管理、资源查看等等常见作)

3、文本高效处理(vi、vim、awk、grep、find、sed等)

4、bash shell脚本(可以边工作边学习,使用shell编写简单的代替重复性作的脚本)

5. 进程调度,内存管理,文件系统,外设管理等,要熟练使用相关工具,如top iotop iftop iostat vmstat ss等,并且了解其原理

二、网络管理、进程管理

1、TCP/IP协议、DNS服务、CDN原理、iproute常见的网络客户端工具(ping、wget、ftp)

2、crontab任务

3、ps、top、htop、vmstat、lsof等命令

4. tcp,,s,udp等

5. 能做到精通,4层,7层的网络流量分析技能要熟练掌握。

6. 内部路由协议,边际路由,交换原理,域名解析,ipv6相关知识

三. 数据库部分

MySQL各个版本之间的关系和特性

MySQL的安装及增删改查

MySQL的存储引擎

MySQL的优化

MySQL日常使用及运维,包含备份及故障排查

四. 常用开源组件

tomcat的使用及优化

nginx的使用场景及优化

apache的使用场景及优化

其他服务: dhcp,nfs,rsync,dns,等等

一句话概括: mysql,redis,kafka,etcd,zk,influxdb,promues,zabbix,graphana,ansible…

五. shell脚本

使用shell脚本实现系统及应用自动化

使用shell脚本实现各类巡检,故障排查自动化

六. 安全

iptables四表(fiter、mangle、nat、raw)五链(prerouting、iput、forward、output、trouting)、基本匹配

ipta配置文件在/etc/influxdb/influxdb.conf ,如果没有就将/usr/local/etc/influxdb.conf 拷一个过去ble规则保存重载生效

常用加密算法,web安全,网络安全

渗透的常用手段,以及反制手段,sql注入,xss,ddos,cc

跳板机jumpserver

七. 和日志收集

日志收集ELK,EFK

zabbix,promeus

八. 自动化工具

1、常见自动化运维方案:puppet、ansible、salt、fabric

2、ansible安装基础使用

3、持续集成:jekins+gitlab实现ci/cd流水线

4. python 自动化

九. 容器化和虚拟化技术

docker ,k8s,openstack, kvm,vmware的使用

容器编排的技术

十. devops 编译,加速,测试环境,研发自动化

kubernetes 如何获取dashboard cpu使用率是怎么计算的

我们先从整体上看一下Kubernetes的一些理念和基本架构, 然后从网络、 资源管理、存储、服务发现、负载均衡、高可用、rolling upgrade、安全、等方面向大家简单介绍Kubernetes的这些主要特性。

当然也会包括一些需要注意的问题。主要目的是帮助大家快速理解 Kubernetes的主要功能,今后在研究和使用这个具的时候有所参考和帮助。

1.Kubernetes的一些理念:

用户不需要关心需要多少台机器,只需要关心软件(服务)运行所需的环境。以服务为中心,你需要关心的是api,如何把大服务拆分成小服务,如何使用api去整合它们。

保证系统总是按照用户指定的状态去运行。

不仅仅提给你供容器服务,同样提供一种软件系统升级的方式;在保持HA的前提下去升级系统是很多用户最想要的功能,也是最难实现的。

那些需要担心和不需要担心的事情。

更好的支持微服务理念,划分、细分服务之间的边界,比如lablel、pod等概念的引入。

对于Kubernetes的架构,可以参考文档。

大致由一些主要组件构成,包括Master上的kube-apiserver、kube-scheduler、kube-controller-mar、控制组件kubectl、状态存储etcd、Sle上的kubelet、kube-proxy,以及底层的网络支持(可以用Flannel、OpenVSwitch、Wee等)。

看上去也是微服务的架构设计,不过目前还不能很好支持单个服务的横向伸缩,但这个会在 Kubernetes 的未来版本中解决。

2.Kubernetes的主要特性

会从网络、服务发现、负载均衡、资源管理、高可用、存储、安全、等方面向大家简单介绍Kubernetes的这些主要特性 -> 由于时间有限,只能简单一些了。

另外,对于服务发现、高可用和的一些更详细的介绍,感兴趣的朋友可以通过这篇文章了解。

Kubernetes的网络方式主要解决以下几个问题:

a. 紧耦合的容器之间通信,通过 Pod 和 localhost 访问解决。

b. Pod之间通信,建立通信子网,比如隧道、路由,Flannel、Open vSwitch、Wee。

c. Pod和Serv,以及外部系统和Serv的通信,引入Serv解决。

Kubernetes的网络会给每个Pod分配一个IP地址,不需要在Pod之间建立链接,也基本不需要去处理容器和主机之间的端口映射。

注意:Pod重建后,IP会被重新分配,所以内网通信不要依赖Pod IP;通过Serv环境变量或者DNS解决。

注意:kube-proxy 在集群规模较大以后,可能会有访问的性能问题,可以考虑用其他方式替换,比如HAProxy,直接导流到Serv 的endpints 或者 Pods上。Kubernetes也在修复这个问题。

3)资源管理

有3 个层次的资源限制方式,分别在Container、Pod、Namespace 层次。Container层次主要利用容器本身的支持,比如Docker 对CPU、内存、磁盘、网络等的支持;Pod方面可以限制系统内创建Pod的资源范围,比如或者最小的CPU、memory需求;Namespace层次就是对用户级别的资源限额了,包括CPU、内存,还可以限定Pod、rc、serv的数量。

目前的资源分配计算也相对简单,没有什么资源抢占之类的强大功能,通过每个上的资源总量、以及已经使用的各种资源加权和,来计算某个Pod优先非配到哪些,还没有加入对实际可用资源的评估,需要自己的scheduler plugin来支持。其实kubelet已经可以拿到的资源,只要进行收集计算即可,相信Kubernetes的后续版本会有支持。

4)高可用

主要是指Master的 HA方式 利用etcd实现 选举,从多个Master中得到一个kube-apiserver 保证至少有一个可用,实现high ailability。对外以loadbalancer的方式提供入口。这种方式可以用作ha,但仍未成熟,据了解,未来会更新升级ha的功能。

5) 1)网络rolling upgrade

RC 在开始的设计就是让rolling upgrade变的更容易,通过一个一个替换Pod来更新serv,实现服务中断时间的最小化。基本思路是创建一个复本为1的新的rc,并逐步减少老的rc的复本、增加新的rc的复本,在老的rc数量为0时将其删除。

通过kubectl提供,可以指定更新的镜像、替换pod的时间间隔,也可以rollback 当前正在执行的upgrade作。

同样, Kuberntes也支持多版本同时部署,并通过lable来进行区分,在serv不变的情况下,调整支撑服务的Pod,测试、新Pod的工作情况。

6)存储

大家都知道容器本身一般不会对数据进行持久化处理,在Kubernetes中,容器异常退出,kubelet也只是简单的基于原有镜像重启一个新的容器。另外,如果我们在同一个Pod中运行多个容器,经常会需要在这些容器之间进行共享一些数据。Kuberenetes 的 Volume就是主要来解决上面两个基础问题的。

Docker 也有Volume的概念,但是相对简单,而且目前的支持很有限,Kubernetes对Volume则有着清晰定义和广泛的支持。其中最核心的理念:Volume只是一个目录,并可以被在同一个Pod中的所有容器访问。而这个目录会是什么样,后端用什么介质和里面的内容则由使用的特定Volume类型决定。

spec.volumes 指定这个Pod需要的volume信息 spec.containers.volumeMounts 指定哪些container需要用到这个Volume Kubernetes对Volume的支持非常广泛,有很多贡献者为其添加不同的存储支持,也反映出Kubernetes社区的活跃程度。

emptyDir 随Pod删除,适用于临时存储、灾难恢复、共享运行时数据,支持 RAM-backed filehostPath 类似于Docker的本地Volume 用于访问一些本地资源(比如本地Docker)。

gcePersistentDisk GCE disk - 只有在 Gmetrics.reporter.influxdb.interval: 60 SECONDSoogle Cloud Engine 平台上可用。

awsElasticBlockStore 类似于GCE disk 必须是 AWS EC2的实例 nfs - 支持网络文件系统。

rbd - Rados Block Dev - Ceph

secret 用来通过Kubernetes API 向Pod 传递敏感信息,使用 tmpfs (a RAM-backed file)

persistentVolumeClaim - 从抽象的PV中申请资源,而无需关心存储的提供方

glusterfs

iscsi

gitRepo

根据自己的需求选择合适的存储类型,反正支持的够多,总用一款适合的 :)

7配置完毕之后,重启influxdb服务即可。)安全

一些主要原则:

基础设施模块应该通过API server交换数据、修改系统状态,而且只有API server可以访问后端存储(etcd)。

把用户分为不同的角色:Dlopers/Project Admins/Administrators。

允许Dlopers定义secrets 对象,并在pod启动时关联到相关容器。

以secret 为例,如果kubelet要去pull 私有镜像,那么Kubernetes支持以下方式:

通过docker login 生成 .dockercfg 文件,进行全局授权。

认证 (Authentication)

API server 支持证书、token、和基本信息三种认证方式。

授权 (Authorization)

通过apiserver的安全端口,authorization会应用到所有的请求上

AlwaysDeny、AlwaysAllow、ABAC三种模式,其他需求可以自己实现Authorizer接口。

比较老的版本Kubernetes需要外接caisor主要功能是将node主机的container metrics抓取出来。在较新的版本里,caior功能被集成到了kubelet组件中,kubelet在与docker交互的同时,对外提供服务。

Kubernetes集群范围内的主要由kubelet、heapster和storage backend(如influxdb)构建。Heapster可以在集群范围获取metrics和数据。它可以以pod的方式运行在k8s平台里,也可以单独运行以standalone的方式。

注意: heapster目前未到1.0版本,对于小规模的集群比较方便。但对于较大规模的集群,heapster目前的cache方式会吃掉大量内存。因为要定时获取整个集群的容器信息,信息在内存的临时存储成为问题,再加上heaspter要支持api获取临时metrics,如果将heapster以pod方式运行,很容易出现OOM。所以目前建议关掉cache并以standalone的方式出k8s平台。

mac安装influxdb及golang的简单调用

使用shell脚本实现各种服务的自动化部署

1.mac肯定是brew安装啦

一张图帮助大家理解:

cache-max-memory-siz2) 服务发现及负载均衡e是用来配置缓存的

2.启动客户端

3.基本作

8. InfluxDB配置admin用户认证登陆

这里已经报错提示需要权限验证: ERR: unable to parse authentication credentials

不管是yum安装,亦或者是docker安装的方式,influxdb默认安装完毕之后,并不会自带用户认证的功能,直接就可以进行访问的了。

资源管理模型 -》 简单、通用、准确,并可扩展

情况如下:

或者c直接查询出来数据,不需要用户认证,如下:

对于这种不设置防备的措施,总体来说,不是很好。

所以,下面来看看怎么设置用户认证。

实际作如下:

默认情况下,influxdb的配置文件是禁用认证策略的,所以需要修改设置一下。

编辑配置文件 vim /etc/influxdb/influxdb.conf ,把 [] 下的 auth-enabled 选项设置metrics.reporter.influxdb.scheme: 为 true 。

在配置启动认证以及重启influxdb之后,如果不使用admin用户登陆,则会报错如下:

这里使用admin认证用户登陆访问一下,格式如下:

执行如下:

执行如下:

其中增加 ?pretty=true 可以将 json 展开显示。

当然设置了用户认证之后,写入数据的时候也要带上用户名以及密码 &u=username&p=password ,如下:

用户名密码写在HTTP头Authorization选项

下面来执行一下:

查看插入后的influxdb数据,如下:

最后修改时间:
老人与海多少字_老人与海多少千字
上一篇
关于言的四字成语开头 言开头的四字词
下一篇

相关文章