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

相关推荐
云攀登者-望正茂1 小时前
使用 Datadog 和 Slack Alerts 监控 AWS EC2
云计算·aws·datadog
东风微鸣2 小时前
Grafana将弃用AngularJS-我们该如何迁移
docker·云原生·kubernetes·可观察性
孤枫212 小时前
aws平台练习B
云计算·aws
阿明观察2 小时前
聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?
人工智能·云计算
开心码农1号3 小时前
当一个 HTTP 请求发往 Kubernetes(K8s)部署的微服务时,整个过程流转时怎样的?
http·微服务·kubernetes
Linux运维老纪4 小时前
GitLab之搭建(Building GitLab)
linux·mysql·云计算·gitlab·运维开发
云攀登者-望正茂6 小时前
通过AWS EKS 生成并部署容器化应用
云原生·kubernetes·aws
kennygu7 小时前
jenkins项目发布-安装k8s(rancher)客户端kubectl
kubernetes·jenkins·rancher
zkmall7 小时前
阿里云 OSS 在 ZKmall开源商城的应用实践
阿里云·开源·云计算
飞龙观奥10 小时前
倚光科技:以创新之光,雕琢全球领先光学设计公司
其他·云计算