1.4.9 k8s 创建容器并测试网络
创建测试容器,测试网络是否可以通信。k8s中使用 kubectl 命令 代替 docker 命令
[root@k8s-master1 ~]# kubectl run net-test1 --image=alpine sleep 360000
pod/net-test1 created
[root@k8s-master1 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
net-test1 0/1 ContainerCreating 0 8s <none> node2.waluna.top <none> <none>
[root@k8s-master1 ~]#
# 等待一分钟所有创建成功
[root@k8s-master1 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
net-test1 1/1 Running 0 32s 10.10.4.2 node2.waluna.top <none> <none>
[root@k8s-master1 ~]#
# 进入容器测试网络
[root@k8s-master1 ~]# kubectl exec -it net-test1 sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
/ # ping -c3 baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: seq=0 ttl=127 time=14.225 ms
64 bytes from 220.181.38.148: seq=1 ttl=127 time=14.211 ms
64 bytes from 220.181.38.148: seq=2 ttl=127 time=14.256 ms
--- baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 14.211/14.230/14.256 ms
/ # exit
[root@k8s-master1 ~]#
1.4.10 使用 kubeadm 部署 k8s 总结
必须禁用 swap、打开 ip_forward
安装 docker 环境
安装 kubeadm、kubectl、kubelet 命令
尽量使用配置文件初始化,否则使用命令初始化后,长时间会忘记初始化的命令参数
初始化之前先拉取相关镜像,然后使用打标签方式代替国外仓库地址,需要在所有master和node节点进行操作
初始化失败尽量还原系统原始状态,否则会影响再次初始化,比如iptables,网卡地址,证书信息等等
初始化后先给用户授权,然后安装网络组件,注意安装flannel组件时需将yml文件中的地址段改为pod的地址段,否则会影响网络
初始化完成,安装网络组件,并变成ready后,生成证书,再添加master和node节点
添加完成后需要将 /etc/kubernetes/manifests/ 下的 kube-controller-manager.yaml 和 kube-scheduler.yaml 文件中注释掉 - --port=0 选项注释掉,打开10252和10251端口。
最后再次验证各组件和pod状态,创建一个测试pod验证网络是否正常







Comments | NOTHING