telnet客 1. 需要有一个任务不停的从socket中读取远端client传过来的原始字符, 然后加以处理之后写入到pty Master中. (类比, 即键盘在往串口输入数据啦) 2. 需要有一个任务不停的从pty Master读取执行命令后的回显啊, 打印信息啊之类的数据, 送到socket中去给远端显示. 3. 从pty slave中读取pty中的数据了之后, 传给cli模块进行解析, 像命令行一样解析. 4. cli命令行模块执行命令, 然后所有的打印输出, 如printf之类的, 重定向到pty slave这个设备. 好了, 这里有一点必须要说明的是, pty Master和pty slave不是两个设备, 是一个设备, 是一个虚拟的设备. 也就是说, 你执行函数write(ptyMasterFd), 是可以通过read(ptySlaveFd)读取到数据的!!! 反之亦然.
vxworks是怎么把这个pty设备建立起来的呢, 这个可以从帮助文件中找到:
1. 先调用ptyDrv( ) 初始化驱动
2. 调用ptyDevCreate( ) 来创建pty设备, 当然也可以用ptyDevRemove( )来移除一个已经创建过的pty设备.
在调用ptyDevCreate( )的时候, 举例来说, ptyDevCreate ("/pty/0.", 512, 512); 那么就会生成一个pty Master, 自动命名为"/pty0.M", 并且生成一个pty Slave, 自动命名为"/pty0.S". 然后Master和Slave就可以通过open()函数打开啦! 比如说 open ("/pty0.M", O_RDWR, 0), 就可以得到master的fd了, slave同样.户端的具体实现:
为了解决docker stats的问题(存储、展示),谷歌开源的cadvisor诞生了,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Prometheus进行数据抓取,或者cadvisor + influxdb + grafna搭配使用。 cAdvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况 Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息,在K8S中集成在Kubelet里作为默认启动项,官方标配 .使用docker部署
Quagga软件原名是Zebra是由一个日本开发团队编写的一个以GNU版权方式发布的软件。Quagga项目开始与1996年,当前版本是0.98.4版 可以使用Quagga将linux机器打造成一台功能完备的路由器。 Quagga支持的路由协议 Quagga能够同时支持RIPv1、RIPv2、RIPng、OSPFv2、OSPFv3、BGP-4和 BGP-4+等诸多TCP/IP协议。其中: RIPv1、RIPv2、OSPFv2适用于Ipv4的自治域系统内部网络路由协议。 BGP-4是用于Ipv4的自治域系统之间的外部网络路由协议。 RIPng、OSPFv3、BGP-4+主要扩展对Ipv6的支持。 Quagga的特性 模块化设计:Quagga基于模块化方案的设计,即对每一个路由协议使用单独的守护进程。 运行速度快:因为使用了模块化的设计,使得Quagga的运行速度比一般的路由选择程序要快。 可靠性高:在所有软件模块都失败的情况下,路由器可以继续保持连接并且daemons也会继续运行。故障诊断不必离线的状态下被诊断和更正 支持Ipv6:Quagga不仅支持Ipv4,还支持Ipv6。 Quagga的运行机制 由于Quagga采用模块化的设计,因此Quagga运行时要运行多个守护进程,包括ripd ripngd ospfd ospf6d bgpd 和Zebra。 其中,Zebra守护进程用来更新内核的路由表,而其他的守护进程负责进行相应路由选择协议的路由更新。 Quagga的好处 就路由器而论,虽然有各种硬件可用,但是费用较高。所以想到用一个运行Linux系统构件的功能丰富的路由器作为代替。Quagga路由守护程序已经使这一切变为现实。因为Quagga支持Ipv4、Ipv6和其他各式各样的协议,所以能够满足通常所有的路由需要。 使用Quagga的另一个好处是,这个软件配置的很多方面跟Cisco的IOS配置几乎完全相同,如果你在Cisco IOS环境中工作,可以轻松的过渡到Quagga系统,同时,使用Quagga特能让你积累起丰富的类似于使用Cisco IOS路由器的经验和知识。 总之,现在完全可以拿一台PC机来完成一些必须用昂贵的Cisco路由器才能完成的比较复杂的路由协议处理控制功能。 Quagga使用基础 1、 Quagga的安装与启动 Red Hat EL 3自带了Quagga,下面以RPM包的安装为例介绍Quagga的安装。若用户已经安装了Quagga则可跳过下面的安装步骤。
Docker跨主机容器间网络通信实现的工具有Pipework、Flannel、Weave、Open vSwitch(虚拟交换机)、Calico Weave的思路 在每个宿主机上布置一个特殊的route的容器,不同宿主机的route容器连接起来。 route拦截所有普通容器的ip请求,并通过udp包发送到其他宿主机上的普通容器。这样在跨机的多个容器端看到的就是同一个扁平网络。 weave解决了网络问题,不过部署依然是单机的。