listen tcp :443: bind: permission denied, failed waiting for all runnables to end within grace period of 30s: context deadline exceeded

398次阅读
没有评论

今天在k8s cluster里部署一个operator的pod的时候老是报错不断重启,查看pod log显示:

listen tcp :443: bind: permission denied, failed waiting for all runnables to end within grace period of 30s: context deadline exceeded

说明container不能绑定到pod的443端口上,然后排查了pod内的其他container并没有占用443端口,这就很奇怪了,后来发现是因为container加了securityContext导致没有权限绑定端口导致的:

  securityContext:
    runAsNonRoot: true
    runAsUser: 1234

但是我的deployment yaml里并没有定义这个securityContext啊,这个是怎么回事?后来发现是自己之前测试加了个MutatingWebhook导致的生成的pod自动加上了这个securityContext,删掉这个webhook然后删掉有问题的pod重新创建pod就好了:

kubectl delete mutatingwebhookconfigurations cainjector-webhook-demo
mutatingwebhookconfiguration.admissionregistration.k8s.io "cainjector-webhook-demo" deleted

这种问题还是很难排查的,这次排查了很久,很浪费时间,所以测试的数据要及时删掉避免日后坑到自己。

正文完
 
tonychen
版权声明:本站原创文章,由 tonychen 2023-05-08发表,共计674字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)