问题标签 [amazon-eks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
46 浏览

amazon-web-services - RegionUtils.getRegionsForService("eks") 返回空列表

我们正在尝试使用RegionUtils.getRegionsForService(AmazonEKS.ENDPOINT_PREFIX)其 Java SDK 的 API 在 AWS 上获取支持 EKS 服务的区域列表。但是,会返回一个空的区域列表。此 API 非常适用于 S3、EC2 等。EKS 目前已在北弗吉尼亚、俄勒冈和爱尔兰得到支持。

EKS 目前不支持吗?这里的替代方案将不胜感激。

0 投票
1 回答
1602 浏览

kubernetes - Istio-proxy 不会通过 global.proxy.includeIPRanges 配置拦截传出流量

在具有 CIDR 172.20.0.0/16 的 VPC 中拥有 AWS EKS 集群并istio 1.0.2使用 helm 安装:

然后部署一些 pod 进行测试:

并部署它:

然后在 service-one pod 中,我正在请求 service-two 并且在 service-one 的 istio-proxy 容器中没有关于传出请求的日志,但是如果我重新配置 istio 而不设置global.proxy.includeIPRanges它按预期工作(但我需要这个配置来允许多个外部连接)。我该如何调试正在发生的事情?

0 投票
2 回答
2264 浏览

kubernetes - Kubernetes 不接受新的作业定义

我在 EKS 上运行作业。在尝试使用无效的 yaml 开始工作后,它似乎并没有放弃错误的 yaml,并且即使在更正文件后仍然给我相同的错误消息。

  1. 我成功地跑了一份工作。
  2. 我在该部分中添加了一个带有布尔值的环境变量env,这引发了这个错误:
    • Error from server (BadRequest): error when creating "k8s/jobs/create_csv.yaml": Job in version "v1" cannot be handled as a Job: v1.Job: Spec: v1.JobSpec: Template: v1.PodTemplateSpec: Spec: v1.PodSpec: Containers: []v1.Container: v1.Container: Env: []v1.EnvVar: v1.EnvVar: Value: ReadString: expects " or n, but found t, error found in #10 byte of ...|,"value":true},{"nam|..., bigger context ...|oduction"},{"name":"RAILS_LOG_TO_STDOUT","value":true},{"name":"AWS_REGION","value":"us-east-1"},{"n|...
  3. 我将值更改为 string yes,但错误消息继续显示原始的错误 yaml。
  4. 没有职位出现kubectl get jobs --all-namespaces
    • 所以我不知道这个旧的 yaml 会藏在哪里。

我认为这可能是因为我没有imagePullPolicy设置为Always,但即使我在kubectl本地运行命令也会发生这种情况。

以下是我的工作定义文件:

0 投票
2 回答
190 浏览

kubernetes - Kubenet 响应时间降级,使用 hostNetwork: true 解决,使用 unicorn 应用程序

我正在尝试调试通过使用解决的问题hostNetwork: true。k8s安装使用的是kubenet,k8s版本是1.9.8。

使用 m4.xlarge 和 c4.xlarge 实例在 AWS 上使用 kops 完成安装。

问题如下:

当我们将此应用程序迁移到 Kubernetes 时,某个端点的响应时间(百分位 95)增加了大约 20-30%。

hostNetwork: true但是,在 yaml 中使用时,此问题已解决。此端点的性能与虚拟机上的性能相同,即响应时间的百分位 95 与此端点相同。

我在 7 月 18 日(是的,不久前!)的 kubernetes 办公时间问过这个问题,然后hostNetwork: true解决方法就出现了。

请注意,所有 kube-proxy 的东西都可以丢弃,因为在应用程序本身进行测量时会看到响应时间的增加。我的意思是,ruby 应用程序测量它所花费的时间并将其发送到日志收集器。这一次,即由于请求开始由应用程序处理直到完成,已经显示出性能下降。所以 kube-proxy 和那些东西是不相干的。

pod 有 3 个容器:

  • Nginx
  • 日志收集器
  • 该应用程序(与独角兽一起运行的红宝石应用程序)

这些应用程序也处于虚拟机模式

我尝试了什么:

  • 找到了一种使用 ab(apache benchmark) 重现的方法
    • ab -c 1 -n 1000 'https://...
    • 同样的情况发生在 http,而不是 https
  • 我尝试删除 nginx 容器,但它并没有改变任何东西。日志收集器在 localhost 上使用,并且在没有出现问题的 VM 上执行相同的操作
  • 我尝试在 nginx 和应用程序之间使用 unix 套接字,而不是 localhost,但它也没有改变任何东西。
  • 尝试在 EKS 中使用相同的实例 (m4.xlarge):同样的情况。虽然不使用的性能成本hostNetwork: true更低,大约在 10% 左右。请注意,EKS 不使用 kubenet,而是使用基于一些开源的自己的网络覆盖。
  • 尝试使用仅返回字符串的另一个端点(输入“Ok”)并且问题没有发生
  • 尝试使用返回几 MB 的端点(如"Die" * 10 * 1024 * 1024),问题也没有发生
  • 尝试了具有不同查询字符串参数问题的同一端点,因此响应很大(9MB)或短(130kb)并且都可靠地重现了问题
  • 尝试了一个 nodejs 应用程序,它从类似的来源返回类似的 json,并且问题不存在(也不存在短/长响应)接下来可能会做什么:

所以,我正在尝试调试这个问题以了解它是什么,并希望停止使用hostNetwork: true. 似乎有进一步挖掘的途径:

  • 尝试其他 CNI(EKS 表现出较少的性能下降)以查看性能是否发生变化

  • 查看此端点的功能或它如何与独角兽和整个堆栈交互。一个很大的区别是,unicorn 是每个请求一个进程(同步),而 nodejs 不是。

  • 尝试使用更多较新的机器 (m5/c5) 来查看它们是否能减轻性能损失。但是,由于当前使用它们作为虚拟机的实例不存在这个问题,似乎如果它有帮助,只会隐藏问题

这个有性能问题的端点是 ruby​​ 中的一个端点,它读取数据库并返回一个 json。数据库、主机、网络看起来都很好(使用 vmstat、我们的常规工具、AWS 控制台、检查 kern.log、sysloca 等监控 CPU、磁盘 IO、交换等)

碰巧,你有过类似的经历吗?或者您对如何继续调试此问题有任何其他想法?

任何想法或任何形式的帮助都非常受欢迎!

罗德里戈

0 投票
1 回答
1700 浏览

amazon-web-services - Amazon Kubernetes AWS-EKS 未正确创建或未与 kubectl 同步

按照这个文档一步一步来:

https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html?shortFooter=true

我使用 aws cli 而不是 UI 创建了 EKS 集群。所以我得到了以下输出

但是当我遵循这个入门并将 Worker 节点与集群相关联时,我得到了

我可以看到在 AWS 控制台 (UI) 中创建并运行了 3 个 EC2 实例。但我什至无法部署和运行留言簿应用程序。当我部署应用程序时,我得到以下信息:

但是如果我尝试访问EXTERNAL-IP,它会显示

服务器无法访问

在浏览器中。

还尝试为 kubernetes 获取仪表板,但它未能在 127.0.0.1:8001 上显示任何内容

有谁知道可能出了什么问题?对此的任何帮助表示赞赏。

谢谢

0 投票
1 回答
1189 浏览

mongodb - AWS EKS - kubectl 日志 [pod 名称]

我在 us-east-1 的 AWS 上运行了一个 EKS 集群。我分别在 us-east-1a、1b、1c 上运行了三个工作节点。us-east-1a 中运行的所有 pod 都允许我登录并检查日志,但其他区域中的 pod 不断抛出错误:

任何帮助表示赞赏。基本上使用此设置在各个区域中对 mongodb 进行分片。

0 投票
1 回答
3437 浏览

python - AWS EKS - 从 pod 内验证 Kubernetes python lib

客观的

我想从正在运行的 pod 内连接并调用 Kubernetes REST API,所讨论的 Kubernetes 是使用 IAM 身份验证的 AWS EKS 集群。所有这些都使用 Kubernetes Python 库。

我试过的

从我的内部python file

上面的命令会抛出一个403错误,我相信这是由于 AWS EKS 使用了不同的身份验证机制。

我已经知道的工作

虽然上述方法有效,但我必须对我通过 kubectl 在本地生成的令牌进行硬编码,并将其签入存在安全风险的代码中。

有没有更合适的方法来使用 AWS EKS 对 Kubernetes python 库进行身份验证?

0 投票
2 回答
403 浏览

kubernetes - Kubernetes calico 网络策略

我是 Kubernetes 的新手,正在尝试学习 calico 网络。我正在关注此文档(https://docs.aws.amazon.com/eks/latest/userguide/calico.html),并尝试创建一个网络策略,以使流量在后端到客户端之间流动:

我完成了文档中的所有 10 个步骤,并尝试通过创建一个策略来进行测试,该策略将使用上述策略将流量从后端发送到客户端。

当我应用该策略时没有错误,但我看不到两者之间的流量/连接。

请让我知道出了什么问题。

0 投票
1 回答
2556 浏览

amazon-web-services - Kubernetes 服务无法在 AWS-EKS 上访问

我在 aws 上创建了一个简单的EKS集群,如https://github.com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started中所述。

在这个集群中,我创建了一个nginx 部署和一个Loadbalancer类型的服务,如下所述。该配置在 minikube 上本地工作。

在 AWS 上,我可以看到 pod 和服务已启动,该服务有一个外部 ip,我可以使用 kubectl port-forward 访问 pod,并且可以 ping LoadBalancer。

但是我无法通过浏览器通过http://a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com:3001访问负载均衡器
This site can’t be reached

知道我应该在哪里调查吗?

NGinx 部署

NGinx 服务

检查

服务说明

0 投票
0 回答
552 浏览

kubernetes - Istio 未向 Jaeger 报告 https 跟踪

描述错误 我们有一个运行 envoy sidecar 代理的容器,使用 Istio 自己的示例为端口 443 提供服务/部署:sample/https/nginx。我们可以卷曲容器以很好地获取 nginx 页面,但在 Jaeger 中绝对看不到 https 调用的痕迹。只要我们在部署/服务中将端口切换到 80,就会在 Jaeger 中看到 HTTP 调用

预期行为 我们应该看到对容器的 HTTP/HTTPS 调用的跟踪。

重现错误的步骤:

  • 创建 nginx 配置:

    /li>
  • 创建 nginx 部署:

    /li>
  • curl -kv https://service-ip给 200

  • Jaeger 中没有 HTTPS 的痕迹

版本

安装

环境 - 在 AWS EKS 中运行

集群状态 - 附加 的archite.tar.gz

编辑 1

用于服务的 yaml - jaeger-query

apiVersion: v1 kind: Service metadata: creationTimestamp: 2018-10-02T02:32:23Z labels: app: jaeger chart: tracing-1.0.1 heritage: Tiller jaeger-infra: jaeger-service release: istio name: jaeger-query namespace: istio-system resourceVersion: "5259733" selfLink: /api/v1/namespaces/istio-system/services/jaeger-query uid: 6513eded-c5eb-11e8-860c-12504ba0df7c spec: clusterIP: 172.20.14.251 ports: - name: query-http port: 16686 protocol: TCP targetPort: 16686 selector: app: jaeger sessionAffinity: None type: ClusterIP status: loadBalancer: {}

部署: istio-tracing:

apiVersion: extensions/v1beta1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: 2018-10-02T02:32:23Z generation: 1 labels: app: istio-tracing chart: tracing-1.0.1 heritage: Tiller release: istio name: istio-tracing namespace: istio-system resourceVersion: "5259783" selfLink: /apis/extensions/v1beta1/namespaces/istio-system/deployments/istio-tracing uid: 65056099-c5eb-11e8-860c-12504ba0df7c spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: jaeger strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: annotations: scheduler.alpha.kubernetes.io/critical-pod: "" sidecar.istio.io/inject: "false" creationTimestamp: null labels: app: jaeger spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 weight: 2 - preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le weight: 2 - preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x weight: 2 requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x containers: - env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: COLLECTOR_ZIPKIN_HTTP_PORT value: "9411" - name: MEMORY_MAX_TRACES value: "50000" image: docker.io/jaegertracing/all-in-one:1.5 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: / port: 16686 scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: jaeger ports: - containerPort: 9411 protocol: TCP - containerPort: 16686 protocol: TCP - containerPort: 5775 protocol: UDP - containerPort: 6831 protocol: UDP - containerPort: 6832 protocol: UDP readinessProbe: failureThreshold: 3 httpGet: path: / port: 16686 scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 status: availableReplicas: 1 conditions: - lastTransitionTime: 2018-10-02T02:32:23Z lastUpdateTime: 2018-10-02T02:32:23Z message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: 2018-10-02T02:32:23Z lastUpdateTime: 2018-10-02T02:32:27Z message: ReplicaSet "istio-tracing-ff94688bb" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1