confd

通过consul实现prometheus动态服务发现以及告警策略注册

試著忘記壹切 提交于 2020-10-14 05:57:01
动态服务发现 Prometheus 提供了多种动态服务发现的功能,这里以consul为例。 客户端的一个接口,需要调用服务A-N。客户端必须要知道所有服务的网络位置的,在服务很多时配置十分麻烦。***在加入服务发现模块之后,服务发现模块定时的轮询查看这些服务能不能访问。***客户端在调用服务A-N的时候,就跑去服务发现模块查看它们的网络位置,然后再调用它们的服务。客户端完全不需要记录这些服务网络位置,实现了客户端与服务端的解耦。 在一台主机上部署node-exporter探针, 如果要通过prometheus实现监控,需要修改配置文件,新增一个target。如果每次新增target都去变更服务器上的配置文件会非常麻烦。 在prometheus的configmap.yaml文件中进行配置: -job_name: 'consul-prometheus' consul_sd_configs: - server: '10.4.**.***:8500' services: [] relabel_configs: - source_labels: ['__meta_consul_service'] regex: 正则规则 action: keep 其中 relabel_configs:中内容的含义为:如果目标的__meta_consul_service标签与regex中的内容正则匹配

docker中怎样设置开机启动--随容器的启动而启动服务?

谁说我不能喝 提交于 2020-08-18 05:33:26
  docker可以说给我们的部署带来极大的方便和可逢凶化吉性!(懂的同学自然懂)   在初步了解之后,我们就能简单使用docker了。   刚开始玩docker时,可以基于系统级别的镜像做定制,比如基于 centos 镜像使用docker; docker pull centos: 7 # 把镜像拉下来 docker run -it centos: 7 # 创建一个容器即可运行   你可以在拉下来的容器里安装任何需要的应用(必要的);然后,一切都看起来很美好!   但是,这时,我们最担心一个问题,那就是docker挂了怎么办?机器重启后怎么办?   是的,这个担心是有道理的,如果你没有去查细细看过官方文档,那么多半你是吃过这亏,才会清楚其中的坑! 所以,我们来提几个问题? 简单而不简约! 1. 如何备份当前容器的修改?备份是可靠性的一个保证!   1. 使用commit 命令保存到本地 docker commit -m " msg " abcommitid myimage: 1.0   其好处是操作方便,本机永久保存,方便下次快速操作。坏处,也不算,就是你如果想放到远程,你必须注册一个docker hub 账号,然后保存过去。而且这样的镜像,一般只适合自己使用,不适合团队传播!(不过也不是绝对的)   2. 使用docker save 保存压缩包到本地 docker save -o

Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

半城伤御伤魂 提交于 2020-04-28 02:57:12
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的方法吗?肯定是通过域名啊!前提是你注册一个域名,或者修改机器hosts文件。 本文介绍通过引入etcd+confd实现部署服务的自动注册,自动生成nginx配置文件,实现每个服务独立域名访问。 配置域名 假设你的域名是: example.com,那么我们可以规划 dev.$servicename.example.com作为开发环境, test.$servicename.example.comz作为服务的测试环境。 配置步骤: 首先将*.example.com 指向一台nginx服务器 增加vhost配置文件,假设86.6,86.8,86.11 是docker swarm集群中的机器,服务的名称为allinoneservice,那么我们可以增加一个配置文件nginx_vhosts/service.conf: upstream test_service_allinoneservice { server 192.168.86.11:10091; server 192.168.86.6:10091; server 192.168.86.8:10091; } server { listen 80

使用confd与nginx 实现kubernetes master节点高可用

余生长醉 提交于 2020-03-20 12:30:28
下载confd 二进制文件 # 创建目录方便存放文件 mkdir confd # 进入新创建的目录 cd confd # 下载 confd wget https://github.com/kelseyhightower/confd/releases/download/v0.16.0/confd-0.16.0-linux-amd64 # 重命名 mv confd-0.16.0-linux-amd64 confd # 给confd 可执行权限 chmod +x confd 生成confd 配置 # 创建confd 配置目录 mkdir -p ./conf.d # 创建模版存放目录 mkdir -p ./templates # 生成confd 配置文件 cat << EOF | tee ./conf.d/nginx.toml [template] src = "nginx.tmpl" dest = "/etc/nginx/nginx.conf" keys = [ "CP_HOSTS", ] EOF # 生成模版文件 cat << EOF | tee ./templates/nginx.tmpl error_log stderr notice; worker_processes auto; events { multi_accept on; use epoll; worker

利用select实现一个聊天室程序

倖福魔咒の 提交于 2020-02-29 19:18:55
实验要求 用户默认处于广播模式,一个客户在其客户端发送的消息,其它客户端用户全部可以收到; 程序支持下列命令 /help:显示帮助信息(思考:信息是放在客户端还是服务器端); /quit:用户退出聊天室,同时将退出信息广播给其他用户; /who:显示在线用户; /send 用户名 消息:向指定用户发送点到点消息 程序退出时清理所有的占用资源,包括内存资源、套接字等 支持最大连接数限制; 能够管理用户加入和退出。 实验环境 Red Hat 9 代码 chatserver.c # include <stdio.h> # include <stdlib.h> # include <string.h> # include <sys/socket.h> # include <netdb.h> # include <sys/time.h> # include <sys/types.h> # define PORT 1573 # define BACKLOG 10 # define BUFSIZE 2048 struct client_info { int id ; //Represents the socket the user is now accessing char name [ 256 ] ; int first ; //whether the user is visiting for

简易配置中心Confd入手

霸气de小男生 提交于 2019-12-20 01:09:46
改成动态更新配置文件,如下每五秒重新生成配置文件 confd与etcd的使用 Add keys This guide assumes you have a working etcd , or consul server up and running and the ability to add new keys. /tmp/test-etcd/etcdctl set /myapp/database/url db.example.com /tmp/test-etcd/etcdctl set /myapp/database/user rob Create the confdir The confdir is where template resource configs and source templates are stored. sudo mkdir -p /etc/confd/{conf.d,templates} Create a template resource config Template resources are defined in TOML config files under the confdir . /etc/confd/conf.d/myconfig.toml [template] src = "myconfig.conf.tmpl" dest = "

阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性

自古美人都是妖i 提交于 2019-11-29 09:07:48
作者 | 阿里巴巴资深技术专家 雷卷,GitHub ID @linux-china **导读:**在 Python、JavaScript 等一众编程语言崛起风靡之际,一代霸主 Java 风采虽不及当年,但仍横扫了各大编程语言排行榜,依旧是各大企业级应用开发语言中的 NO.1。从 Java 8 之后,Java 引入了很多有用的新语言特性,以及新工具和性能改善。但是仍有非常多的同学在日常开发中没有切换到 Java 8 的后续版本。本篇文章将侧重开发方向,为大家介绍后 Java 8 时代的特性。 首先我们必须承认,Java 8 是一个里程碑式的版本,这个相信大多数Java程序员都认同,其中最知名的是 Streams & Lambda ,这让 Functional Programming 成为可能,让 Java 焕发新的活力。这也是即便 Oracle 不在支持 Java 8 的更新,各个云厂商还是积极支持,站点为 https://adoptopenjdk.net/ ,可以让 Java 8 能继续保留非常长的时间。 目前非常多的同学日常开发并没有切换到 Java 8 后续的版本,所以这篇文章,我们打算写一个后 Java 8 时代的特性,主要是偏向于开发的,不涉及 GC , Compiler , Java Module , Platform 等,如果一一解释,估计非常长的文章

阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性

≡放荡痞女 提交于 2019-11-29 09:00:58
首先我们必须承认,Java 8 是一个里程碑式的版本,这个相信大多数Java程序员都认同,其中最知名的是 Streams & Lambda ,这让 Functional Programming 成为可能,让 Java 换发新的活力。这也是即便 Oracle 不在支持 Java 8 的更新,各个云厂商还是积极支持,站点为 https://adoptopenjdk.net/ ,可以让 Java 8 能继续保留非常长的时间。 目前非常多的同学日常开发并没有切换到 Java 8 后续的版本,所以这篇文章,我们打算写一个后 Java 8 时代的特性,主要是偏向于开发的,不涉及 GC , Compiler , Java Module , Platform 等,如果一一解释,估计非常长的文章,当然后续可以写另外文章介绍。下面的这些特性会影响到我们日常的代码编写。 考虑到 Java 13 马上发布,所以版本覆盖从 9 到 13 ,与此同时 Java Release 的方式调整,一些特性是在某一版本引入(preview),后续收到反馈后做了非常多的增强和完善,这里就不一一说明特性是哪个版本的,你可以理解为后Java 8版本后的特性大杂烩。参考资料来源于官方 features 和 pluralsight 上每一个版本的 Java 特性介绍。 var 关键字(局部变量类型推导) Local

confd + Nacos | 无代码侵入的配置变更管理

泪湿孤枕 提交于 2019-11-28 19:50:26
为什么要支持 confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启。一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的 SDK 来查询和监听数据的变更。对于一些已经成熟的系统来说,接入 SDK 来实现动态配置管理是很难实现的, Nacos 通过引入配置管理工具 confd 可以实现系统的配置变更做到无代码侵入性。 confd 是一个轻量级的配置管理工具,可以通过查询后端存储系统来实现第三方系统的动态配置管理,如 Nginx、Tomcat、hHaproxy、Docker 配置等。 confd 目前支持的后端有 etcd、Zookeeper 等,Nacos 1.1 版本通过对 confd 定制支持 Nacos 作为后端存储。 confd 能够查询和监听后端系统的数据变更,结合配置模版引擎动态更新本地配置文件,保持和后端系统的数据一致,并且能够执行命令或者脚本实现系统的 reload 或者重启。 安装 confd 插件 confd 的安装可以通过源码安装方式,confd 基于 Go 语言编写,其编译安装依赖 Go,首先需要确保本地安装了 Go,版本不低于v1.10 创建 confd 目录,下载 confd 源码,编译生成可执行文件 mkdir -p $GOPATH/src/github.com/kelseyhightower

confd + Nacos | 无代码侵入的配置变更管理

不羁岁月 提交于 2019-11-28 19:46:33
为什么要支持 confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启。一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的 SDK 来查询和监听数据的变更。对于一些已经成熟的系统来说,接入 SDK 来实现动态配置管理是很难实现的, Nacos 通过引入配置管理工具 confd 可以实现系统的配置变更做到无代码侵入性。 confd 是一个轻量级的配置管理工具,可以通过查询后端存储系统来实现第三方系统的动态配置管理,如 Nginx、Tomcat、hHaproxy、Docker 配置等。 confd 目前支持的后端有 etcd、Zookeeper 等,Nacos 1.1 版本通过对 confd 定制支持 Nacos 作为后端存储。 confd 能够查询和监听后端系统的数据变更,结合配置模版引擎动态更新本地配置文件,保持和后端系统的数据一致,并且能够执行命令或者脚本实现系统的 reload 或者重启。 安装 confd 插件 confd 的安装可以通过源码安装方式,confd 基于 Go 语言编写,其编译安装依赖 Go,首先需要确保本地安装了 Go,版本不低于v1.10 创建 confd 目录,下载 confd 源码,编译生成可执行文件 mkdir -p $GOPATH/src/github.com/kelseyhightower