1.pod
问题的引出:
我有一套k8s的服务器,我在其中一台机器里,安装docker之后,需要远程访问oceanbase, 在让运维在db上设置了本机的IP为白名单。
本机网络命令访问成功!
本机直接运行程序访问成功!
通过docker发布程序,访问失败!
最后在同事的帮助之下,才知道,不能只设置机器白名单,而是要设置所有的pod ip都是白名单才可以。
因为docker里访问带的IP不一定是主机的IP, 应该是 pod ip (猜的),而pod ip是可能变化的。
所以只是设置了主机的白名单是没用的。
pod 相关内容,倒是很多。不引用了
2.执行权限问题
在git 自动发布的时候,最后一步docker开始运行的时候,每次都直接退出。
后来发现是.sh 的脚本没有执行权限
添加了 chmod + x ./XX.sh 之后就运行成功了。
特别是在git 的pull,checkout的时候,复制过之后.sh文件的执行权限就失去了。需要重新添加,要特别注意。
3.panic: dial tcp: lookup xxx on 100.100.2.138:53: no such host
阿里云k8s的服务(svc) 的域名访问在外部是不行的,要在docker里才有效
不然就是报上面类似的错误
4.ngnix map 的问题
主要是想按照head里的key进行分发到不同的服务器。来实现分布式部署
map "$arg_appId" $myServer { "xxxxx" "http://xx.xxx.xx.xxx:xxxxx"; default "http://xx.xxx.xx.xx:xxxxx"; }
location{
proxy_pass $myServer;
}
类似于以上的做法,xx是用的IP, 是成功的。
然后我把IP换成域名之后,解析失败了。。
要换成这样才行
upstream sdk2 {
server yy.com:10008;
}
upstream defaultSdk { server xx.com:10003; }
map "$arg_appId" $myServer {
"aaaa" sdk2;
"bbbbb" sdk2; default defaultSdk;
}
location / {
proxy_pass http://$myServer;
}
参考链接
5.deployment.yaml
问题引出:
第一次发布成功了。
发现deployment.yaml 里的hostpath配置错了,修改后再次发布, 发现阿里云上的并没有发生变化。
结论是:修改后重新发布不会更新。 k8s 只有第一次有效. 如果有修改 需要删除后再次发布。