美文网首页
docker网络通讯 & prometheus监控

docker网络通讯 & prometheus监控

作者: Linux运维 | 来源:发表于2020-08-05 22:47 被阅读0次

一、docker 基础网络模式

默认daoker网络模式是 bridge

网络模式 含义
bridge 桥接网络(默认)
host 与宿主机共用网络
container 容器和另外一个容器共用网络
none 没有外部网络,只有本地的的回环地址
[root@k8s-node-2 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
79dcb24fd5e3        bridge              bridge              local
dda0d0ab86d2        host                host                local
46d21f5a5200        none                null                local

# 创建启动容器时指定网络
docker run -d --network host alpine:latest
docker run -d -p 80:80 --network container:ID alpine:latest

二、自定义网络

[root@k8s-node-2 ~]# docker network 
connect    create    disconnect   inspect     ls      prune      rm

[root@k8s-node-2 ~]# docker network create -d bridge --subnet 172.19.0.0/24 --gateway 172.19.0.1 cc
-d       指定网络模式
--subnet     指定网段
--gateway    指定网关

三、跨宿主机容器间通讯

类似于桥接网络

#创建
 docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.1 -o parent=eth0 macvlan-1
-o parent=      指定使用的网络接口

#应用,需要指手动分配 IP,并且ping 不通自己的宿主机
docker run -d --network macvlan-1 --ip 10.0.0.3 alpine:latest

四、跨宿主机容器间通讯之overlay

overlay是全局网络,在任意一个节点创建即可

1.在一台主机上下载并导入 progrium/consul 镜像
2.启动 consul服务 容器

consul:kv类型的存储数据库(key:value)

docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap

#通过http://IP:8500 访问
3.所有docker 节点主机 配置docker.service 文件
#添加到 [Service] 后面
[root@docker01 ~]# vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock

#重新加载启动
[root@docker01 ~]# systemctl daemon-reload
[root@docker01 ~]# systemctl restart docker.service 
4.所有docker节点主机 配置 daemon.json 文件
#添加
[root@docker01 ~]# vim /etc/docker/daemon.json
...
"cluster-store": "consul://10.0.0.13:8500",     #安装consul的主机IP+port
"cluster-advertise": "10.0.0.11:2376"        #本地主机IP+port
...

#重启docker
systemctl restart docker 
5.创建overlay 网络,并且使用它
docker network create -d overlay --subnet 172.16.0.0/16 --gateway 172.16.0.1 ol1

docker run -it --network ol1 --name one alpine:latest

真实原理:
每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网

五、docker容器prometheus监控

1.下载并解压 prometheus

下载地址:https://prometheus.io/download/

[root@k8s-master ~]# tar xf prometheus-2.12.0.linux-amd64.tar.gz -C /usr/local/
[root@k8s-master ~]# cd /usr/local/
[root@k8s-master local]# mv prometheus-2.12.0.linux-amd64 prometheus
#创建用户并授权
[root@k8s-master prometheus]# useradd prometheus
[root@k8s-master prometheus]# chown prometheus:prometheus /usr/local/prometheus
2.据情况修改配置文件 prometheus.yml
3.启动
[root@k8s-master prometheus]# ./prometheus --config.file=prometheus.yml &
#看服务是否启动
[root@k8s-master prometheus]# ps -ef | grep prometheus

也可以使用systemd方式启动服务,需在 /usr/lib/systemd/system/ 目录下,创建prometheus.service配置文件,然后启动服务。

4.访问

相关文章

网友评论

      本文标题:docker网络通讯 & prometheus监控

      本文链接:https://www.haomeiwen.com/subject/ligarktx.html