标签: aws-eks

如何在ECR中使用Docker Image与AWS EKS

我创建了EKS Cluster.我在ECR中也有码头图像.我不知道如何在YAML中使用pod定义中的docker镜像.

是否需要秘密提供凭证?或者EKS IAM角色应该获得ECR的许可吗?

权限的任何更改都必须为ECR中的Image做?

amazon-web-services aws-ecr amazon-eks aws-eks

18
推荐指数
1
解决办法
7671
查看次数

附加新卷(EKS)时Kubernetes Pod处于挂起状态

让我描述一下我的情况:

TL; DR

当我在带有1个附加卷的Kubernetes上创建部署时,一切工作正常。当我创建相同的部署,但附加了第二个卷(总计:2个卷)时,吊舱因错误而卡在“待定”上:

pod has unbound PersistentVolumeClaims (repeated 2 times)
0/2 nodes are available: 2 node(s) had no available volume zone.
Run Code Online (Sandbox Code Playgroud)

已检查是否在正确的可用区中创建了卷。

详细说明

我有一个使用2个节点的Amazon EKS设置的集群。我有以下默认存储类:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gp2
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Retain
mountOptions:
  - debug
Run Code Online (Sandbox Code Playgroud)

我有一个mongodb部署,它需要两个卷,一个卷安装在/data/db文件夹上,另一个卷安装在我需要的某个随机目录中。这是用于创建三个组件的最小Yaml(我故意评论了几行):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  namespace: my-project
  creationTimestamp: null
  labels:
    io.kompose.service: my-project-db-claim0
  name: my-project-db-claim0
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  namespace: my-project
  creationTimestamp: …
Run Code Online (Sandbox Code Playgroud)

kubernetes amazon-eks aws-eks

9
推荐指数
1
解决办法
2558
查看次数

Pods卡在ContainerCreating中,“无法为容器分配IP地址”

问题

ContainerCreating滚动更新消息后,600个pod部署中的多个pod卡在其中:

Failed create pod sandbox: rpc error: code = Unknown desc = NetworkPlugin cni failed to set up pod <pod name> network: add cmd: failed to assign an IP address to container

我尝试过的

maxIPAddresses, value: 759.000000
ipamdActionInProgress, value: 1.000000
addReqCount, value: 16093.000000
awsAPILatency, value: 564.000000
delReqCount, value: 32337.000000
eniMaxAvailable, value: 69.000000
assignIPAddresses, value: 558.000000
totalIPAddresses, value: 682.000000
eniAllocated, value: 69.000000
Run Code Online (Sandbox Code Playgroud)

问题

CNI指标输出是否表明存在问题?好像有足够的IP。

我还能尝试调试什么?

kubernetes aws-eks

8
推荐指数
1
解决办法
1319
查看次数

无法获取我的kubernetes主节点的externalID(即由aws提供的instanceId)

我确实尝试过kubectl 描述节点masterNodeName,它给出的输出为:

Name:               ip-172-28-3-142
    Roles:              master
    Labels:             beta.kubernetes.io/arch=amd64
                        beta.kubernetes.io/os=linux
                        kubernetes.io/arch=amd64
                        kubernetes.io/hostname=ip-172-28-3-142
                        kubernetes.io/os=linux
                        node-role.kubernetes.io/master=
    Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                        node.alpha.kubernetes.io/ttl: 0
                        projectcalico.org/IPv4Address: 172.28.3.142/20
                        projectcalico.org/IPv4IPIPTunnelAddr: 192.163.119.24
                        volumes.kubernetes.io/controller-managed-attach-detach: true
    CreationTimestamp:  Thu, 06 Jun 2019 04:10:28 +0000
    Taints:             <none>
    Unschedulable:      false
    Conditions:
      Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
      ----                 ------  -----------------                 ------------------                ------                       -------
      NetworkUnavailable   False   Sat, 24 Aug 2019 12:10:03 +0000   Sat, 24 Aug 2019 12:10:03 +0000   CalicoIsUp                   Calico is running on this node
      MemoryPressure       False   Tue, 27 Aug 2019 14:08:19 +0000   Tue, 11 …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubeadm amazon-eks aws-eks

7
推荐指数
1
解决办法
177
查看次数

无法SSH EKS辅助节点

我已创建https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html中指定的EKS群集

按照上面的链接中的步骤添加了工作节点,第3步:启动和配置Amazon EKS工作节点

在安全组中,我还添加了为工作节点启用ssh的规则。当我尝试使用“ ec2-user”用户名和有效密钥登录工作节点时,SSH登录未发生。

谁能帮助我调试此问题?

amazon-ec2 amazon-web-services kubernetes amazon-eks aws-eks

5
推荐指数
2
解决办法
2319
查看次数

Kubernetes集群不会将外部IP暴露为<nodes>

这是我的service.yaml代码:

kind: Service
apiVersion: v1
metadata:
  name: login
spec:
  selector:
    app: login
  ports:
  - protocol: TCP
    name: http
    port: 5555
    targetPort: login-http
  type: NodePort
Run Code Online (Sandbox Code Playgroud)

我写的服务类型为

type: NodePort
Run Code Online (Sandbox Code Playgroud)

但当我点击命令如下时,它不会将外部IP显示为"节点":

'kubectl get svc'
Run Code Online (Sandbox Code Playgroud)

这是输出:

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.100.0.1     <none>        443/TCP          7h
login        NodePort    10.100.70.98   <none>        5555:32436/TCP   5m
Run Code Online (Sandbox Code Playgroud)

请帮我理解错误.

cluster-computing docker kubernetes devops aws-eks

4
推荐指数
1
解决办法
1974
查看次数

Kubernetes:无法从EKS pod到RDS Postgres

我正在尝试在AWS上设置kubernetes。为此,我根据官方的AWS教程创建了一个具有3个节点(t2.small)的EKS集群。然后,我想用一些与Postgres(不同VPC中的RDS)通信的应用程序运行一个pod。

但不幸的是,该应用程序未连接到数据库。

是)我有的:

  1. 具有自己的VPC的EKS群集(CIDR:192.168.0.0/16)
  2. 具有自己的VPC的RDS(Postgres)(CIDR:172.30.0.0/16)
  3. 从RDS VPC到EKS VPC的对等连接已启动
  4. 更新了EKS群集的3个公共子网的路由表:添加了目的地为172.30.0.0/16和目标为#3的对等连接的路由。
  5. RDS的路由表已更新:目的地为192.168.0.0/16且目标为目标的路由—添加了来自步骤3的对等连接。
  6. RDS安全组已更新,添加了新的入站规则:允许来自192.168.0.0/16的所有流量

完成所有这些步骤后,我执行kubectl命令:

kubectl exec -it my-pod-app-6vkgm nslookup rds-vpc.unique_id.us-east-1.rds.amazonaws.com
nslookup: can't resolve '(null)': Name does not resolve

Name:      rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Address 1: 52.0.109.113 ec2-52-0-109-113.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

然后,我连接到三个节点之一并执行命令:

getent hosts rds-vpc.unique_id.us-east-1.rds.amazonaws.com
52.0.109.113    ec2-52-0-109-113.compute-1.amazonaws.com rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

为了从Pod访问RDS,我在EKS设置中错过了什么?

更新:

我试图通过以下方法解决此问题Service

apiVersion: v1
kind: Service
metadata:
  name: postgres-service
spec:
  type: ExternalName
  externalName: rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

因此,我在EKS中创建了此服务,然后尝试将其postgres-service称为DB URL而不是直接RDS主机地址。

此修复程序无效:(

amazon-web-services kubernetes aws-eks

4
推荐指数
1
解决办法
2836
查看次数

如果应该应用jx step helm,则创建/生成helm版本

我在和jx,kubernetes和helm斗争。我在执行env目录中的命令的jx上运行Jenkinsfile:

sh 'jx step helm build'
sh 'jx step helm apply'
Run Code Online (Sandbox Code Playgroud)

它成功完成并部署了pods /创建了部署等。但是,头盔列表为空。

当我执行类似helm install ...或的操作时,helm upgrade --install ...它会创建一个发布,并且头盔列表显示了这一点。

这是正确的行为吗?

更多细节:

安装了以下软件的EKS:

eksctl create cluster --region eu-west-2 --name integration --version 1.12 \
--nodegroup-name integration-nodes \
--node-type t3.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 10 \
--node-ami auto \
--full-ecr-access \
--vpc-cidr "172.20.0.0/16"
Run Code Online (Sandbox Code Playgroud)

然后我用一些kubectly apply命令(不共享文件)设置入口(外部和内部)。然后设置路由和与vpc相关的内容。

JX安装了:

jx install --provider=eks --ingress-namespace='internal-ingress-nginx' \
--ingress-class='internal-nginx' \
--ingress-deployment='nginx-internal-ingress-controller' \
--ingress-service='internal-ingress-nginx' --on-premise \
--external-ip='#########' \
--git-api-token=######### \
--git-username=######### …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-helm jenkins-x aws-eks

4
推荐指数
1
解决办法
224
查看次数

AWS EKS添加仅限于名称空间的用户

我创建了AWS EKS集群,因为使用我的AWS userID创建的集群已添加到system:masters组中。但是,当选中ConfigMap时,aws-auth我看不到我的用户ID。为什么呢

我必须授予其他用户访问权限,因此我必须为IAM用户分配适当的AWS策略,然后aws-auth使用以下映射编辑ConfigMap

mapUsers:
----
- userarn: arn:aws:iam::573504862059:user/abc-user  
  username: abc-user
  groups:
    - system:masters
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经了解了当用户属于system:masters组时,该用户在群集上具有管理员权限。

如何添加对特定名称空间具有受限特权的新用户?我是否需要为上述用户做同样的事情?如果是这样,那么我应该将新用户添加到哪个组?

amazon-web-services kubernetes kubectl amazon-eks aws-eks

3
推荐指数
1
解决办法
1156
查看次数

如何在kubernetes集群中拖尾所有日志

我尝试了以下命令:

kubectl logs --tail
Run Code Online (Sandbox Code Playgroud)

我收到此错误/帮助输出:

Error: flag needs an argument: --tail


Aliases:
logs, log

Examples:
  # Return snapshot logs from pod nginx with only one container
  kubectl logs nginx

  # Return snapshot logs for the pods defined by label app=nginx
  kubectl logs -lapp=nginx

  # Return snapshot of previous terminated ruby container logs from pod web-1
  kubectl logs -p -c ruby web-1

  # Begin streaming the logs of the ruby container in pod web-1
  kubectl logs -f -c ruby web-1

  # …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl amazon-eks aws-eks eks

2
推荐指数
3
解决办法
1968
查看次数

如何在Kubernetes中将Node-Labels继承到Pod-Labels?

我可以继承节点标签到吊舱标签吗?

即我想有zoneinstance-type从节点标签荚

kubernetes aws-eks

1
推荐指数
1
解决办法
118
查看次数