【发布时间】:2022-10-30 10:15:12
【问题描述】:
我正在尝试在原始 AWS EC2 实例上设置非托管 k8s 集群。 我已经安装了运行良好的控制平面。只有 core-dns 处于未知状态,这是意料之中的,直到安装 CNI。
ubuntu@ip-xxx-xx-1-11:/var/log/aws-routed-eni$ kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
aws-node-hjx46 0/1 CrashLoopBackOff 9 (0s ago) 24m
coredns-64897985d-2z7xd 0/1 Unknown 1 81m
coredns-64897985d-7tplp 0/1 Unknown 1 81m
etcd-ip-xxx-xx-1-11 1/1 Running 3 (25m ago) 81m
kube-apiserver-ip-xxx-xx-1-11 1/1 Running 3 (25m ago) 81m
kube-controller-manager-ip-xxx-xx-1-11 1/1 Running 3 (25m ago) 81m
kube-proxy-ktbfd 1/1 Running 3 (25m ago) 81m
kube-scheduler-ip-xxx-xx-1-11 1/1 Running 3 (25m ago) 81m
(3 次重新启动是由于我重新启动了节点)
我已将具有以下策略的 IAM 角色添加到我的控制平面节点:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:AssignPrivateIpAddresses",
"ec2:AttachNetworkInterface",
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:DescribeInstances",
"ec2:DescribeTags",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeInstanceTypes",
"ec2:DetachNetworkInterface",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:UnassignPrivateIpAddresses"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
]
}
]
}
此外,我还创建了一个安全组,它允许来自分配了相同安全组的任何节点的所有端口上的所有流量。所以我的控制平面节点应该能够在任何端口上与其自身进行通信。
然后我从 github 下载了 aws-k8s-cni.yaml v1.11.4,并使用以下命令安装它:
kubectl apply -f aws-k8s-cni.yaml
安装后我得到:
"msg":"Retrying waiting for IPAM-D" 在日志中,"timeout: failed to connect service \":50051\" within 5s" 在我描述我的 aws-node pod 时。
但是,执行cat /var/log/aws-routed-eni/ipamd.log | grep "error" 不会产生任何结果。仔细阅读该文件后,我相信 ipamd 运行顺利。
os: Ubuntu 22.04
k8s: 1.23.12
aws-cni: 1.11.4
EC2 实例已被标记为kubernetes.io/cluster/<cluster-name>: owned
kubelet 以--cloud-provider=aws 开头
任何帮助将不胜感激!
谢谢!
【问题讨论】:
标签: amazon-web-services kubernetes