2024-05-11 笔记

随笔6个月前发布 明晓哥
68 0 0

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;

}

参考链接

map nginx

5.deployment.yaml 

问题引出:

第一次发布成功了。

发现deployment.yaml 里的hostpath配置错了,修改后再次发布, 发现阿里云上的并没有发生变化。

结论是:修改后重新发布不会更新。 k8s 只有第一次有效. 如果有修改 需要删除后再次发布。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...