k8s部署应用常见错误 电脑版发表于:2022/6/3 21:19 ### network: open /run/flannel/subnet.env: no such file or directory 1:在每个节点创建文件/run/flannel/subnet.env写入以下内容。注意每个节点都要加哦,不是主节点 ``` FLANNEL_NETWORK=10.244.0.0/16 FLANNEL_SUBNET=10.244.0.1/24 FLANNEL_MTU=1450 FLANNEL_IPMASQ=true ``` 2:然后删除掉部署 我这里名字是test-k8s,需要换成自己的 ``` kubectl delete deployment test-k8s ``` 3:重新执行部署 ``` kubectl apply -f app.yaml ``` ### /run/flannel/subnet.env is missing FLANNEL_NETWORK, FLANNEL_IPV6_NETWORK 这个错其实也是因为subnet.env文件的问题,你看提示里边就说:/run/flannel/subnet.env is missing FLANNEL_NETWORK,这个文件subnet.env缺少了FLANNEL_NETWORK配置,开始去纠结网络问题去了,其实是配置文件里边这块内容写错了。 **查看文件内容:** 可以看到第一行的配置是有问题的,复制的时候少复制了几个字母,单词打错了 ![](https://img.tnblog.net/arcimg/aojiancc2/55d129dec6824f26b6634c809d3a5f47.png) 应该是这样的:FLANNEL_NETWORK。-。-大意了,没有闪 ![](https://img.tnblog.net/arcimg/aojiancc2/311de343e7844ee182d603766240897f.png) <font color=red>注意,主节点和子节点都要修改对哦</font>,不要子修改主节点 **涉及到的节点都修改好后重新部署即可** 删除掉部署 ``` kubectl delete deployment test-k8s ``` 重新执行部署 ``` kubectl apply -f app.yaml ``` ### k8s虚拟机跑上了,宿主机访问不到。宿主机使用虚拟机的ip+端口访问不到 这种问题,通常ip与端口映射或者监听问题。 ![](https://img.tnblog.net/arcimg/aojiancc2/d79513aa7c1b4b12bf62945ee46e767e.png) 虚拟机跑上了,本地能使用curl访问,但是宿主机使用虚拟机的ip+端口访问不到。 tn2> localhost是只能本地端口访问,把监听地址改成0.0.0.0就可以了 **在做端口映射的时候增加一个--address 把地址加一下就可以了** ``` kubectl port-forward --address 0.0.0.0 pod/pod-name 8080:8080 ``` address 0.0.0.0 K8S会监听任何地址就没有问题了 **当然如果还不行的话可以考虑一下部署的应用本身的ip地址与端口问题** 比如下面的一个简单的nodejs服务监听。 localhost是只能本地端口访问,把监听地址改成0.0.0.0就可以外部访问了。当然一般只需要在k8s里边设置address 0.0.0.0就行了 ``` // 监听地址不要写成127.0.0.1或者localhost var server = app.listen(8081, '127.0.0.1', function () { var host = server.address().address; var port = server.address().port; console.log("地址为 http://%s:%s", host, port); }); //监听地址写成0.0.0.0 var server = app.listen(8081, '0.0.0.0', function () { var host = server.address().address; var port = server.address().port; console.log("地址为 http://%s:%s", host, port); }); ``` ### ifconfig cni0 down 未找到命令 安装net-tools即可 ``` yum install net-tools ``` ### wget: 未找到命令 输入如下命令安装: ``` yum -y install wget ``` 安装好了查看: ``` rpm -qa|grep "wget" ```