问题标签 [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.
amazon-web-services - RegionUtils.getRegionsForService("eks") 返回空列表
我们正在尝试使用RegionUtils.getRegionsForService(AmazonEKS.ENDPOINT_PREFIX)
其 Java SDK 的 API 在 AWS 上获取支持 EKS 服务的区域列表。但是,会返回一个空的区域列表。此 API 非常适用于 S3、EC2 等。EKS 目前已在北弗吉尼亚、俄勒冈和爱尔兰得到支持。
EKS 目前不支持吗?这里的替代方案将不胜感激。
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
它按预期工作(但我需要这个配置来允许多个外部连接)。我该如何调试正在发生的事情?
kubernetes - Kubernetes 不接受新的作业定义
我在 EKS 上运行作业。在尝试使用无效的 yaml 开始工作后,它似乎并没有放弃错误的 yaml,并且即使在更正文件后仍然给我相同的错误消息。
- 我成功地跑了一份工作。
- 我在该部分中添加了一个带有布尔值的环境变量
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|...
- 我将值更改为 string
yes
,但错误消息继续显示原始的错误 yaml。 - 没有职位出现
kubectl get jobs --all-namespaces
- 所以我不知道这个旧的 yaml 会藏在哪里。
我认为这可能是因为我没有imagePullPolicy
设置为Always
,但即使我在kubectl
本地运行命令也会发生这种情况。
以下是我的工作定义文件:
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、交换等)
碰巧,你有过类似的经历吗?或者您对如何继续调试此问题有任何其他想法?
任何想法或任何形式的帮助都非常受欢迎!
罗德里戈
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 上显示任何内容
有谁知道可能出了什么问题?对此的任何帮助表示赞赏。
谢谢
mongodb - AWS EKS - kubectl 日志 [pod 名称]
我在 us-east-1 的 AWS 上运行了一个 EKS 集群。我分别在 us-east-1a、1b、1c 上运行了三个工作节点。us-east-1a 中运行的所有 pod 都允许我登录并检查日志,但其他区域中的 pod 不断抛出错误:
任何帮助表示赞赏。基本上使用此设置在各个区域中对 mongodb 进行分片。
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 库进行身份验证?
kubernetes - Kubernetes calico 网络策略
我是 Kubernetes 的新手,正在尝试学习 calico 网络。我正在关注此文档(https://docs.aws.amazon.com/eks/latest/userguide/calico.html),并尝试创建一个网络策略,以使流量在后端到客户端之间流动:
我完成了文档中的所有 10 个步骤,并尝试通过创建一个策略来进行测试,该策略将使用上述策略将流量从后端发送到客户端。
当我应用该策略时没有错误,但我看不到两者之间的流量/连接。
请让我知道出了什么问题。
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 服务
检查
服务说明
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