《consul 简易上手指南》_最新版consul怎么post方式添加服务

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

执行上面这条命令之后,consul 会被启动起来,并且占用终端

加上 -client=0.0.0.0 参数是让我们能够通过本地浏览器来访问 consul 提供的 http 接口(即 consul 能够对外提供服务)

在这里插入图片描述

注册服务

接下来我们将简单注册一个服务并在 web 界面上实现健康检查

这是官方文档给出的一个注册服务的配置示例:

{
  "id": "web1",
  "name": "web",
  "port": 80,
  "check": {
    "name": "ping check",
    "args": ["ping", "-c1", "learn.hashicorp.com"],
    "interval": "30s",
    "status": "passing"
  }
}

编写一个服务定义配置文件,假设有一个名为 web 的服务在端口 80 上运行

# vim /etc/consul.d/web.json
{"service": {"name": "web", "tags": ["rails"], "port": 80}}

ctrl+c 终止掉 consul 服务,重启 consul

consul agent -dev -client=0.0.0.0 -config-dir=/etc/consul.d

  • 查询服务

一旦 consul 启动,我们可以通过 HTTP API 方式来查询

即使用 /v1/catalog/service/{name} 查询

#web是自己定义服务的名字
curl http://localhost:8500/v1/catalog/service/web

还可以,通过浏览器访问 consul web界面去查看

在这里插入图片描述
可以看到 web 服务已经注册上去了

自带健康检查功能

在这里插入图片描述

k-v操作

除了提供服务发现和健康检查之外,consul 还支持 kv 存储

通过 kv 存储,可以实现动态配置保存、修改等功能

举个例子

有一台 server 提供 web 服务,它将网络配置信息以键值对形式保存到 consul 上

当 client 需要去调用这个 web 服务的时候,就去 consul 上面找到相关的 key 然后获取对应的 value

而当 server 的网络配置发生变化时,可以在 consul 上面直接修改 value

在这里插入图片描述
如上图所示,key 为 webserver,value 为 ip 和 port,以 YAML 的形式保存

consul 上面的 value 有多种形式(JSON、HCL、XML、YAML)

一般我们对 kv 的操作有两种方式:

  1. 通过命令行来操作(CLI API)
  2. 通过 consul 提供的 web 界面(HTTP API)来操作

使用CLI API操作key/value

consul 命令操作 kv 文档:Commands: KV | Consul | HashiCorp Developer

#语法:
consul kv put 

我们想新增一个叫做 webserver 的 key,它的 value 如下:

ip=1.1.1.1 
port=80

查看发现没有 webserver 这个 key

[root@localhost ~]# consul kv get webserver
Error! No key exists at: webserver

我们添加一下

#方法1,通过eof实现换行输入
[root@localhost ~]# consul kv put webserver - <<EOF
> ip=1.1.1.1
> port=80
> EOF

#方法2,通过管道符结合 echo 换行 
[root@localhost ~]# echo -e 'ip=1.1.1.1 \nport=80'| consul kv put webserver -

#方法3,通过文件上传实现
[root@localhost ~]# cat info.txt
ip=1.1.1.1 
port=80

[root@localhost ~]#consul kv put webserver @info.txt

#语法
consul kv delete

假设我们提供 web 服务的 server 发生故障了,需要在 consul 上面删掉它的配置

#server配置
[root@localhost ~]# consul kv get webserver
ip=1.1.1.1 
port=80

[root@localhost ~]# consul kv delete webserver
Success! Deleted key: webserver

#成功删除
[root@localhost ~]# consul kv get webserver 
Error! No key exists at: webserver

假设你某一个 key 对应有多个value,如果修改 value 的话是全部修改的,不能说修改 value 中的某一个值

举个例子,我想修改 webserver 中的 port,将其改成100

[root@localhost ~]# consul kv get webserver
ip=1.1.1.1 
port=80

我只能全部修改,不能单独改 port 字段

[root@localhost ~]# consul kv put webserver - <<EOF
> ip=1.1.1.1
> port=100
> EOF

有一种比较好的方法,就是使用 import 和 export 参数

第一步:我们先将当前的 kv 导出到本地来作备份

[root@localhost ~]# consul kv export webserver >> webserver01.json

第二步:将新配置文件 import 上去

#方法1
consul kv import @webserver02.json

#方法2
cat webserver02.json | consul kv import -

#方法3
consul kv import "$(cat webserver02.json)"

#语法
consul kv get

查看指定 key

[root@localhost ~]# consul kv get webserver
ip=1.1.1.1 
port=80

[root@localhost ~]# consul kv get apiserver
ip=127.0.0.1
port=22

查看指定 key 的详细信息

[root@localhost ~]# consul kv get -detailed webserver
CreateIndex      141
Flags            0
Key              webserver
LockIndex        0
ModifyIndex      141
Session          -
Value            ip=1.1.1.1 
port=80

递归列出所有的 key 以及对应的 value

[root@localhost ~]# consul kv get -recurse webserver
webserver/1.0.0/config:ip=2.2.2.2
port=101
webserver/1.0.1/config:ip=2.2.2.3
port=102

递归列出所有的 key

[root@localhost ~]# consul kv get -keys
apiserver
webserver/

#注意加不加下划线的区别
[root@localhost ~]# consul kv get -keys webserver 
webserver/

[root@localhost ~]# consul kv get -keys webserver/
webserver/1.0.0/


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

ys
apiserver
webserver/

#注意加不加下划线的区别
[root@localhost ~]# consul kv get -keys webserver 
webserver/

[root@localhost ~]# consul kv get -keys webserver/
webserver/1.0.0/


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值