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.yamlkube-scheduler.yaml 文件中注释掉 - --port=0 选项注释掉,打开10252和10251端口。

最后再次验证各组件和pod状态,创建一个测试pod验证网络是否正常