AWS EKS 出现错误 "networkPlugin cni failed to set up pod"
AWS EKS getting error "networkPlugin cni failed to set up pod"
EKS集群版本:
客户端版本:version.Info{主要版本:“1”,次要版本:“20”,GitVersion:“v1.20.1”,GitCommit:“c4d752765b3bbac2237bf87cf0b1c2e307844666”,GitTreeState:“clean”,BuildDate:“2020 -12-19T11:45:27Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
服务器版本:version.Info{主要:“1”,次要:“18+”,GitVersion:“v1.18.9-eks-d1db3c”,GitCommit:“d1db3c46e55f95d6a7d3e5578689371318f95ff9”,GitTreeState:“clean”,BuildDate:“2020 -10-20T22:18:07Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
下面是我的部署文件:
kind: Deployment
apiVersion: apps/v1
metadata:
name: sample-pod
namespace: front-end
spec:
replicas: 1
selector:
matchLabels:
app: sample-pod
template:
metadata:
labels:
app: sample-pod
spec:
serviceAccountName: my-service-account
containers:
- name: sample-pod
image: <Account-id>.dkr.ecr.us-east-1.amazonaws.com/sample-pod-image:latest
resources:
limits:
cpu: 1000m
memory: 1000Mi
requests:
cpu: 500m
memory: 500Mi
env:
- name: name
value: sample-pod
- name: ACTIVE_SPRING_PROFILE
value: dev
imagePullPolicy: Always
ports:
- name: http
containerPort: 8091
imagePullSecrets:
- name: <my_region>-1-ecr-registry
这是我的 docker 文件。
FROM amazoncorretto:latest
COPY bootstarp.sh /bootstarp.sh
RUN yum -y install aws-cli
CMD ["tail", "-f" , "/bootstarp.sh"]
重现步骤:
- kubectl apply -f my-dep.yaml
- 创建容器。
- 使用命令删除部署
kubectl delete -f my-dep.yaml
- 使用命令重新创建
应用-f我的-dep.yaml
不是一个完美的解决方案,但这是我克服它的方法。
根本原因:部署处于终止阶段,我正在重新创建涉及重新分配网络资源的部署,由于死锁,部署失败。
Soln:我在部署的终止和重新部署之间添加了一个冷静期。早些时候,我一次性删除并重新创建了部署(使用 shell 脚本)。
早些时候:
kubectl delete-f my-dep.yaml
some more instructions .....
kubectl apply -f my-dep.yaml
现在:
kubectl delete-f my-dep.yaml
some more instructions .....
**sleep 1m 30s**
kubectl apply -f my-dep.yaml
由于降温,我现在可以按预期部署容器。
问候
阿米特·米纳
EKS集群版本:
客户端版本:version.Info{主要版本:“1”,次要版本:“20”,GitVersion:“v1.20.1”,GitCommit:“c4d752765b3bbac2237bf87cf0b1c2e307844666”,GitTreeState:“clean”,BuildDate:“2020 -12-19T11:45:27Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"} 服务器版本:version.Info{主要:“1”,次要:“18+”,GitVersion:“v1.18.9-eks-d1db3c”,GitCommit:“d1db3c46e55f95d6a7d3e5578689371318f95ff9”,GitTreeState:“clean”,BuildDate:“2020 -10-20T22:18:07Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
下面是我的部署文件:
kind: Deployment
apiVersion: apps/v1
metadata:
name: sample-pod
namespace: front-end
spec:
replicas: 1
selector:
matchLabels:
app: sample-pod
template:
metadata:
labels:
app: sample-pod
spec:
serviceAccountName: my-service-account
containers:
- name: sample-pod
image: <Account-id>.dkr.ecr.us-east-1.amazonaws.com/sample-pod-image:latest
resources:
limits:
cpu: 1000m
memory: 1000Mi
requests:
cpu: 500m
memory: 500Mi
env:
- name: name
value: sample-pod
- name: ACTIVE_SPRING_PROFILE
value: dev
imagePullPolicy: Always
ports:
- name: http
containerPort: 8091
imagePullSecrets:
- name: <my_region>-1-ecr-registry
这是我的 docker 文件。
FROM amazoncorretto:latest
COPY bootstarp.sh /bootstarp.sh
RUN yum -y install aws-cli
CMD ["tail", "-f" , "/bootstarp.sh"]
重现步骤:
- kubectl apply -f my-dep.yaml
- 创建容器。
- 使用命令删除部署 kubectl delete -f my-dep.yaml
- 使用命令重新创建 应用-f我的-dep.yaml
不是一个完美的解决方案,但这是我克服它的方法。
根本原因:部署处于终止阶段,我正在重新创建涉及重新分配网络资源的部署,由于死锁,部署失败。
Soln:我在部署的终止和重新部署之间添加了一个冷静期。早些时候,我一次性删除并重新创建了部署(使用 shell 脚本)。
早些时候:
kubectl delete-f my-dep.yaml
some more instructions .....
kubectl apply -f my-dep.yaml
现在:
kubectl delete-f my-dep.yaml
some more instructions .....
**sleep 1m 30s**
kubectl apply -f my-dep.yaml
由于降温,我现在可以按预期部署容器。
问候 阿米特·米纳