1.利用consul实现k8s服务自动发现

标题 :
1.利用consul实现k8s服务自动发现
目录 :
微服务架构设计
序号 :
1

                ]
            }
        }
    ]
}

}
? - consul自身支持ACL,但目前,Helm图表不支持其中一些功能,需要额外的手动配置, 有关详细信息可参阅:https://www.consul.io/docs/platform/k8s/helm.html - 我们使用basic-auth作了授权,当用户访问consul-ui时需要提供用户名和密码 ?shell
yum -y install httpd
echo "$(htpasswd -nb -C 5 consul yourpassword)" >> auth
kubectl create secret generic basic-auth --from-file=auth
- <font color=‘red‘>当您使用basic-auth时,建议使用Https,否则您的用户名和密码可能会被窃听</font> ? ? ##### [按需]卸载consulshell
helm del --purge registry
kubectl delete pvc -l app=consul
kubectl delete svc -l consul=true
? ##### 查看服务是否被注册 登录到consul的ui,https://yourdomain/ui/dc1/services ![](https://www.showdoc.cc/server/api/common/visitfile/sign/26402b4ae6e60fae2e0e8a15f3bbfa33?showdoc=.jpg) 可以看到我们的服务已经被注册到了consul中 ? 以下事项需要您注意: - <font color=‘red‘>如果您的服务没有被正确注册,请检查registry-consul-sync-catalog-*的日志,另外如果您的服务本身存在问题(例如:服务本身不能正确反代到pod)服务也不能被注册</font> - 您需要为pod创建service, consul才能发现. 也就是说consul发现的资源对象时svc,并非pod ? ##### 服务注册时的一些规范 - 从上图可以看出,我们的服务名称很长.这将影响我们使用网关进行路由的体验(有关网关的设计会在后面章节提及),您可以更改此设置.请更改您的service的亲和属性:"consul.hashicorp.com/service-name": "yourservicename" - 为方便辨识服务,可以为服务打上标签.方便检索 - 有些服务不应该被注册,例如网关服务(因为网关作为外部流量的入口,应该由它路由到具体的服务).您可以更改亲和属性:"consul.hashicorp.com/service-sync": "false"shell
"annotations": {
"consul.hashicorp.com/service-name": "terminal",
"consul.hashicorp.com/service-tags": "honeysuckle,terminalserver"
}
```
最后的效果应该类型这样:

?
?

引用链接

https://github.com/helm/charts/tree/master/stable/consul
https://www.sunnyos.com/article-show-85.html

原文地址:https://www.cnblogs.com/gytangyao/p/11407230.html

时间: 2024-07-29 14:11:56

1.利用consul实现k8s服务自动发现的相关文章

基于Consul+Registrator+Nginx实现容器服务自动发现的集群框架

我们先来看一下服务发现常用的框架有哪些: zookeeper eureka etcd consul 这里就不挨个来介绍它们了,本文中主要以consul为主,如果你在大量接触或使用微服务的话,你可能会碰到一个问题?当你创建的服务数量越来越多时,这些服务之间的通信便越难管理,而且维护代价会越来越高.consul可以给你答案,我们一起来了解一下consul: 1.了解consul Consul是一个分布式,高度可用且支持多数据中心的服务发现,配置和编排工具. Consul支持大规模部署,配置和维护面向

Docker+Consul+Registrator实现服务自动注册与发现

近年微服务架构在互联网应用领域中愈来愈火,引入微服务主要解决了单体应用多个模块的紧耦合.无法扩展和运维困难等问题.微服务架构就是按照功能粒度将业务模块进行垂直拆分,对单体应用本身进行服务化和组件化,每个组件单独部署为小应用(从DB到UI).微服务与微服务之间通过Service API进行交互,同时为了支持水平扩展.性能提升和服务可用性,单个服务允许同时部署一个或者多个服务实例.在运行时,每个实例通常是一个云虚拟机或者Docker容器.本篇文章就可以完美的解决这一问题! 关于docker这里就不多

Marathon-lb 服务自动发现和负载均衡

Marathon-lb用途 在使用Marathon+Mesos 的容器集群中,我们会构建很多个容器,这些容器在不同的slave上分配了不同的随机端口,这些Docker容器在HA模式下运行,如果任何slave节点故障导致容器实例意外退出,它将自动重新创建到健康的节点上. 所以我们不必担心高可用性问题,Marathon会自动帮我们处理这些问题. 但是,当我们要使用这些容器处理我们的业务数据时,问题就来了.如我们有多个nginx提供web服务,我们如何分配流量? 如果slave节点发生硬件故障,或者容

zabbix自动发现与监控内存和CPU使用率最高的进程

监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用zabbix监控系统的自动发现功能,首先编写shell脚本获取服务器的CPU和内存资源使用率最大的进程,以json的格式输出,然后对这些进程的CPU和内存资源使用情况进行监控.(本文监控的进程为Linux服务器中资源使用率最高的10个进程.) 缺点 不适用于监控固定的进程 首先使用top命令查看进程状态

Docker集群实验环境布署--swarm【3 注册服务监控与自动发现组件--consul】

参考官网集群配置方式 https://hub.docker.com/r/progrium/consul/ 集群中需要manager与node能通信consul的发现服务,不然,管理节点选举不了,无法执行docker 命令. 集群中consul工作3台的机器,大于等2台时,集群仍正常工作,如果,发生只有1台时,集群失效,无法选择管理节点,需要启动数据再次达到3台的标准后,集群才能慢慢恢复. 测试最终得出一个惊人结论,我把consul集群删除后,重新拉起时,元数据全部自动发现恢复. 10.40.10

zabbix企业应用:利用自动发现监控IIS站点

如果一台windows server有许多个IIS站点,我们想实现这样一个监控目标:监控每个站点的状态.请求.流量.连接数,而且以后新增加的站点也可以自动加入到监控里,不需要再手动添加. 利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控. 先看一下监控的效果: 上图中的"Web Service(wskh)"是指IIS网站名称为wskh:"Web Service(_Total)"是指IIS下所有的站点. 网站流量

基于docker服务配置Consul+registrator实时服务发现

Consul是用于服务发现和配置的工具.Consul是分布式的,高度可用的,并且具有极高的可伸缩性. Consul服务提供以下关键特性: 服务发现:Consul 的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用 Consul 去发现一个指定服务的提供者.通过 DNS 或者 HTTP 应用程序可用很容易的找到他所依赖的服务: 健康检查:Consul 客户端可用提供任意数量的健康检查,指定一个服务(比如: webserver 是否返回了200 OK 状态码)或者使用本

Docker + Consul + registrator实现服务发现及nginx反向代理

一. 架构设计 在现实中,我们一直渴望着追求提供高质量.高可用的服务架构体系,同时减少不必要的部署和维护代价,减少容错率.面对如此高的要求,可以有两种架构方案:Docker+Etcd+Confd+NginxDocker+Consul+Nginx本文中我们主要来介绍 Docker+Etcd+Confd+Nginx方案,此方案更加高效.快捷,并且维护代价和容错率更低,分布式支持力度更强,如下图所示: 上面示意图的大概流程如下:1.docker01主机上以二进制包的方式部署consul服务并后台运行,

利用jstat 自动发现监控java程序

利用jstat 自动发现监控java程序 这个项目搞了好几天,总结了一下原因: 对自动发现注册监控不了解原理,之前有遗留的脚本很多都不支持不能 用对脚本还不能够完全掌握,有时间还是要好好看看 还是思路问题,解决问题的方法千千万,不要吊死在一棵树上,多试试几种死法本人比较懒,之前打算使用jmx监控,发现公司使用的supervisorctl 管理jar包启动,自己也是第一次使用,这里不做赘述. 使用jstat 命令来获取参数,这里使用的是计划任务,之前放在脚本中,服务搞死了 哈哈哈 干货在这里直接上