AWS EKS 相关错误修复 - remote error: tls: internal error - CSR pending

现象

升级aws eks的kubernetes版本后执行kubectl logs 或者kubectl exec相关命令会出现报错
remote error: tls: internal error

执行kubectl get csr -A查看csr出现一直pending的状态,并且出现问题的pod都在新创建出来的eks node节点上

复制代码
kubectl get csr -A
NAME        AGE   SIGNERNAME                      REQUESTOR                                                     REQUESTEDDURATION   CONDITION
csr-lxtzg   23h   kubernetes.io/kubelet-serving                                                                 <none>              Pending
csr-m2dlr   16h   kubernetes.io/kubelet-serving                                                                 <none>              Pending
csr-m66ft   21h   kubernetes.io/kubelet-serving                                                                 <none>              Pending
csr-m6nnk   17h   kubernetes.io/kubelet-serving                                                                 <none>              Pending
csr-m8j6l   22h   kubernetes.io/kubelet-serving                                                                 <none>              Pending
csr-mb4kz   21h   kubernetes.io/kubelet-serving                                                                 <none>              Pending
csr-mcw4w   23h   kubernetes.io/kubelet-serving                                                                 <none>              Pending

原因

执行kubectl describe cm aws-auth -n kube-system命令发现aws-auth有些role重复了,删掉重复的role就行了, 用 kubectl edit cm aws-auth -n kube-system命令可以直接编辑,或者kubectl get cm aws-auth -n kube-system -o yaml > aws-auth.yaml保存成yaml文件修改后直接apply

yaml 复制代码
Name:         aws-auth
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
====
mapRoles:
----
- groups:
  - system:masters
  rolearn: arn:aws:iam::xxxxxx:role/Fed_Account
- groups:
  - system:bootstrappers
  - system:nodes
  rolearn: arn:aws:iam::xxxxxx:role/eks-stg-shared-worker
  username: system:node:{{EC2PrivateDNSName}}

mapUsers:
----
[]


BinaryData
====

Events:  <none>

其他

如果主机名类型值是subnet的资源名称也可能会导致这种错误,或者role的policy设置不正确,例如:

json 复制代码
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:eks:region-code:your-account-id:cluster/cluster-name"
      }
    }

可以试着禁用policy然后重启pod.

对于pending状态的csr可以尝试手动approve
kubectl get csr | grep Pending | awk '{print $1}' | xargs -I {} kubectl certificate approve {}

但是这对于我们的eks并没有效果

更多讨论可以参考下面的链接

https://github.com/awslabs/amazon-eks-ami/issues/610
https://stackoverflow.com/questions/71696747/kubectl-exec-logs-on-eks-returns-remote-error-tls-internal-error

相关推荐
byoass2 小时前
智巢AI知识库深度解析:企业文档管理从大海捞针到精准狙击的进化之路
开发语言·网络·人工智能·安全·c#·云计算
Java后端的Ai之路3 小时前
Kubernetes是什么?(小白入门版)
云原生·容器·kubernetes·教程
EAIReport6 小时前
Docker与K8s核心解析:共同性、差异性及实战适配指南
docker·容器·kubernetes
长安链开源社区6 小时前
动手开发 | 如何通过k8s部署长安链
云原生·容器·kubernetes·区块链
byoass6 小时前
企业云盘权限管理深度对比:巴别鸟、联想Filez、腾讯企微云盘
网络·安全·云计算·企业微信
亚空间仓鼠7 小时前
Kubernetes技术入门与实践(五):DaemonSet与StatefulSet
容器·贪心算法·kubernetes
Dontla7 小时前
kubectl命令介绍(K8s命令行客户端)
云原生·容器·kubernetes
又来敲代码了7 小时前
k8s的部署
linux·运维·云原生·容器·kubernetes
翼龙云_cloud8 小时前
阿里云代理商:阿里云部署的Hermes Agent 钉钉接入指南
人工智能·阿里云·云计算·钉钉·ai 智能体·hermes agent
炸裂狸花猫8 小时前
开源身份认证与访问管理平台 - Keycloak(二)
docker·云原生·容器·kubernetes·开源·keycloak·sso