POD跨主机不能访问

最近论坛里面发现有小伙伴POD之间跨主机不能访问,自己使用脚本搭建偶尔也有同样的情况,由于没有多余的时间查看这个问题,就搁置了很久,今天又遇到了这个问题,决定吧这个问题高清楚 先来起个http服务用来测试 kubectl run t-server --image vinkdong/defaultbackend:1.4 --overrides='{"spec":{"template":{"spec":{"nodeName":"vk005"}}}}' 在两个节点上启动测试POD,拆成两个窗口执行 kubectl run t-04 -ti --image vinkdong/net-tools bash --overrides='{"spec":{"template":{"spec":{"nodeName":"vk004"}}}}' kubectl run t-05 -ti --image vinkdong/net-tools bash --overrides='{"spec":{"template":{"spec":{"nodeName":"vk005"}}}}' 效果如图显示t-04无法访问在vk005上的的服务 开始查找问题 根据经验检查Kernel IP forwarding # check that ipv4 forwarding is enabled sysctl net.ipv4.ip_forward # 0 means that forwarding is disabled net.ipv4.ip_forward = 1 sysctl -w net.ipv4.ip_forward=1 测试之后还是无法访问 检查Bridge-netfilter # check that bridge netfilter is enabled sysctl net. »

在主机上安装prometheus

昨天将gitlab迁到主机上,从感觉上性能有了一些提升,今天尝试将prometheus也运行到主机上。 首先要确认在主机上可以访问集群的内网ip,如果用rancher搭的k8s集群默认是不能访问的。用kubeadm则一般是可以的,简单的访问一个svc就可以判断出来。 当确认能够访问内网ip后就可以开始下边的步骤了 下载prometheus二进制文件 https://prometheus.io/download/#prometheus 在如上连接中可以找到具体的下载连接 下载完成后解压,并将原有的配置文件粘贴到prometheus.yml中 创建文件夹 mkdir -p /var/run/secrets/kubernetes.io/serviceaccount/ 将一个具有和cluster-admin相同读权限的token放入此文件夹中 echo your-token > /var/run/secrets/kubernetes.io/serviceaccount/token truncate -s-1 /var/run/secrets/kubernetes.io/serviceaccount/token 将ca.crt也放入次文件夹中,如果不知道文件在哪,随意进入一个pod中进入该目录即可找到 echo your-ca-cert > /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 将kubernetes.default.svc放入hosts文件中,prometheus有时会使用这个地址,如果没有添加解析则会出现no host之类的错误,下边的ip同样可以随意进入一个pod中,选择环境变量KUBERNETES_SERVICE_HOST的值 echo 10.233.0.1 kubernetes.default.svc >> /etc/hosts 启动prometheus测试 export KUBERNETES_SERVICE_PORT=443 export KUBERNETES_SERVICE_HOST=10.233.0.1 ./prometheus 访问主机ip:9090查看target是否都正常 正常之后就可以将prometheus放入到service中 cat >/etc/systemd/system/prometheus.service<<EOF [Unit] Description=auto run prometheus [Service] Environment='KUBERNETES_SERVICE_PORT=443' Environment='KUBERNETES_SERVICE_HOST=10. »

不让DNS被刷回去

最近打通了多套在阿里云集群的内网,正常情况下可以用用外网地址访问,但是总归有一些限制,我们选择在搭建了一个DNS服务器,将域名指向了内网地址,并修改/etc/resolve文件使用自己搭建的DNS服务器 开始测试没出什么问题,但没多久发现ip又再次指向了外网地址,怀疑阿里云服务器自动刷新了DNS,… 根据经验编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件,添加一行 PREDNS=no, 再次修改 /etc/resolve 等待两小时后正常,测试重启之后已有有用。 »

Openvpn连接没反应

今天想用Openvpn连到集群里面,但是一直没用反应,等待许久之后提示/var/run/Shimo/configs/xxxxb7591f.ovpn不存在,刚开始以为是Shimo配置文件的问题,清理Shimo无效。 查看线程 ps -ef | grep ovpn 0 1602 1 0 12:39AM ?? 0:00.14 /Applications/Shimo.app/Contents/MacOS/openvpn --config /var/run/Shimo/configs/bc6055f96efd0a0aacaac80177b7591f.ovpn --management-query-passwords --auth-nocache --cd /var/run/Shimo --daemon --log /var/folders/k9/fxdhq6qx2mxffv2f8r26b1cw0000gn/T/bc6055f96efd0a0aacaac80177b7591f.log --management-hold --script-security 2 --management 127.0.0.1 50720 发现有127.0.0.1的地址,突然想到之前把127.0.0.1的hosts修改了,查看/etc/hosts,果然里面没有127.0.0.1这条记录,重新加上,Shimo恢复正常 ➜ configs cat /etc/hosts ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 192.168.99.100 zookeeper-0 192. »

Macos sierra 刷新dns缓存

mac系统升级之后原来的更新dns缓存的方法大都失效,以下命令亲测可用 sudo killall -HUP mDNSResponder; sleep 2; echo macOS DNS Cache Reset | say »