TCP/IP协议中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。
上面这句怎么理解?TCP/IP协议中的传输层并不能总是保证在传输层可靠地传输数据包,是因为UDP协议,udp也是属于传输层,那么理论上的网络协议模型中的第四层传输层也包含(tcp/udp),如果选择的是udp协议,也是不可靠的,所以这句话是不是有点歧义?
未来技术的演进一定是基于声明式的,声明自己的所需,云基础设施会根据声明自动满足所需,也不会存在环境而引起的各种兼容性世纪难题。
应用通过灵活的拼接组合,可以快速搭建集中式的庞大的服务中心,多中心,也可以像麻雀一样,五脏俱全,提供完整的服务,分布在全国各地,就近提供服务。
这些原本不可能实现的,在未来的架构仅仅只需要一个声明。
而能做到这些的,只有容器化。
如果是kubeadm
,可以这样获取:
kubeadm config view | grep Subnet
--cluster-cidr
/ --pod-network-cidr
是提供给 kube-controller-manager 的配置。
你可以简单地做ps -ef | grep "cluster-cidr"
得到你想要的。
也可以通过文件获取,在/etc/kubernetes/manifests/kube-controller-manager.yaml
中:
# sudo grep cidr /etc/kubernetes/manifests/kube-*
/etc/kubernetes/manifests/kube-controller-manager.yaml: - --allocate-node-cidrs=true
/etc/kubernetes/manifests/kube-controller-manager.yaml: - --cluster-cidr=192.168.0.0/16
/etc/kubernetes/manifests/kube-controller-manager.yaml: - --node-cidr-mask-size=24
显示 kube-proxy 使用的 pod 网络 CIDR:
kubectl cluster-info dump | grep -m 1 cluster-cidr
Docker 希望初始镜像尽量的小,所以剔除了很多命令,但是可以通过以下方式在官方 ubuntu docker 镜像中安装 ping:
apt-get update
apt-get install iputils-ping
有可能你只是临时需要使用ping
命令,用于测试目的,上面的例子将帮助你解决这个问题。
但是如果你需要ping一直在你的镜像上,你可以创建一个Dockerfile或者将你运行上述命令的容器提交到一个新的镜像中。
Commit:
docker commit -m "Installed iputils-ping" --author "Your Name name@domain.com" ContainerNameOrId yourrepository/imagename:tag
Dockerfile:
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
注意,在创建docker镜像时有一些最佳做法,比如在创建后清除apt缓存文件等等,让镜像尽可能的小。