标签: amazon-eks

Aerospike Kubernetes Operator 在 EKS 集群中安装错误

强文本直到证书经理每个吊舱都工作良好,如 aerospike 文档所示。但在安装操作员时,操作员吊舱会发生崩溃循环退避。

安装操作员使用:

git clone https://github.com/aerospike/aerospike-kubernetes-operator.git
git checkout 2.5.0
cd aerospike-kubernetes-operator/helm-charts
helm install aerospike-kubernetes-operator ./aerospike-kubernetes-operator --set replicas=3
Run Code Online (Sandbox Code Playgroud)

Pod 运行:

PS C:\Users\B.Jimmy\aerospike-kubernetes-operator-1.0.0> kubectl get pods -A
NAMESPACE      NAME                                             READY   STATUS             RESTARTS         AGE
cert-manager   cert-manager-576c79cb45-xkr88                    1/1     Running            0                4h41m
cert-manager   cert-manager-cainjector-664f76bc59-4b5kz         1/1     Running            0                4h41m
cert-manager   cert-manager-webhook-5d4fd5cb7f-f96qx            1/1     Running            0                4h41m
default        aerospike-kubernetes-operator-7bbb8745c8-86884   1/2     CrashLoopBackOff   36 (59s ago)     159m
default        aerospike-kubernetes-operator-7bbb8745c8-jzkww   1/2     Error              36 (5m14s ago)   159m
kube-system    aws-node-7b4nb                                   1/1     Running            0                21h
kube-system    aws-node-llnzh                                   1/1     Running            0                21h
kube-system …
Run Code Online (Sandbox Code Playgroud)

aerospike kubernetes kubernetes-helm cert-manager amazon-eks

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

使用 Helm 安装 Prometheus 时出现持久性卷错误

我正在尝试使用位于https://github.com/kubernetes/charts/tree/master/stable/prometheus的默认 prometheus helm chart 将 Prometheus 安装到我的 EKS 集群。它部署成功,但在 Kubernetes Dashboard 中,AlertManager 和 Server 部署显示:

pod 具有未绑定的 PersistentVolumeClaims(重复 3 次)

我试过修改values.yaml文件无济于事。

我知道这没什么可做的,但我不确定在日志记录方面我还能查到什么。

这是运行的输出 helm install stable/prometheus --name prometheus --namespace prometheus

root@fd9c3cc3f356:~/charts# helm install stable/prometheus --name prometheus --namespace prometheus
NAME:   prometheus
LAST DEPLOYED: Wed Jun 20 14:55:41 2018
NAMESPACE: prometheus
STATUS: DEPLOYED

RESOURCES:
==> v1beta1/ClusterRole
NAME                           AGE
prometheus-kube-state-metrics  1s
prometheus-server              1s

==> v1/ServiceAccount
NAME                           SECRETS  AGE
prometheus-alertmanager        1        1s
prometheus-kube-state-metrics  1        1s
prometheus-node-exporter       1        1s
prometheus-pushgateway         1 …
Run Code Online (Sandbox Code Playgroud)

kubernetes prometheus kubernetes-helm amazon-eks

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

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. 我将值更改为字符串yes,但错误消息继续显示原始的,错误的Yaml。
  4. 没有工作出现在 kubectl get jobs --all-namespaces
    • 所以我不知道这个旧的Yaml会藏在哪里。

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

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

apiVersion: batch/v1
kind: Job
metadata:
  generateName: create-csv-
  labels: …
Run Code Online (Sandbox Code Playgroud)

kubernetes amazon-eks

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

Kubernetes Ingress 配置重写问题

我正在创建一个配置以在 AWS 上的 Kubernetes 集群中托管一些应用程序。我有两个不同的应用程序,具有单独的服务/pod/选择器,但我现在想用一个入口公开它们。

所以我创建了以下入口控制器

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /foo
        backend:
          serviceName: foo
          servicePort: 8080
      - path: /bar
        backend:
          serviceName: bar
          servicePort: 8080 
Run Code Online (Sandbox Code Playgroud)

并且入口从 AWS 获取 ELB 没有任何问题,但是当我尝试浏览应用程序(使用 Tomcat appserver 的 Java 应用程序)时,我总是收到以下页面

雄猫

这是经典的旧 Tomcat 欢迎页面,但每个请求总是返回 index.html(未加载 css/img),而且如果我尝试为应用程序使用正确的上下文路径,我会收到此页面。

如果我使用服务 (LoadBalancer) 公开应用程序,我可以使用它而不会出现这些问题,所以我认为入口配置有问题。

有任何想法吗?


更新

如果我使用这样的单一路径的入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: foo
          servicePort: …
Run Code Online (Sandbox Code Playgroud)

tomcat kubernetes kubernetes-ingress amazon-eks nginx-ingress

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

何时使用 AWS Lambda,何时使用 Kubernetes (EKS)?

我们正在尝试评估扩展 J2EE Web 应用程序和使用 AWS 托管服务的最佳方法。我们是否有理由在 Kubernetes (EKS) 上使用 Lambda 服务?虽然 Lambda 似乎可以扩展功能单元,但我不清楚为什么有人会用它来代替 Kubernetes,因为 Kubernetes 可以根据性能指标复制容器。

amazon-web-services kubernetes aws-lambda amazon-eks jakarta-ee

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

EKS 集群身份验证问题:用于创建 EKS 集群的用户或角色已从 AWS IAM 中删除

我有一个使用 eksctl cli 工具创建的 EKS 集群。

现在,用于创建 EKS 集群的用户或角色已从 AWS IAM 中删除,并且我没有向任何其他用户添加访问集群内 Kubernetes 资源的权限。

我拥有我的 AWS 账户的管理员访问权限。有没有办法访问 EKS 内运行的 kubernetes 集群资源?

我尝试了下面文章中提供的解决方案,但它没有成功,因为 IAM 用户和角色已从 AWS 中删除:https: //aws.amazon.com/premiumsupport/knowledge-center/amazon-eks-cluster-access/

如有帮助,将不胜感激。谢谢

amazon-iam amazon-eks

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

无法配置 NGINX 入口控制器

我有一个 eks 集群,我的部署、服务和 loadBalancer 一切正常。每个服务都创建了自己的 LoadBalancer,所有服务都已启动并正在运行。我有一个前端服务和 2 个后端服务,这里是我的部署和入口文件

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: apache-kubernetes
spec:
  replicas: 2
  selector:
    matchLabels:
      app: apache-kubernetes
  template:
    metadata:
      labels:
        app: apache-kubernetes
    spec:
      containers:
      - name: apache-kubernetes
        image: httpd
        ports:
        - containerPort: 80
        env:
        - name: MESSAGE
          value: Hello Kubernetes!
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-apache-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"

spec:
  rules:
  - host: apache.example.com
  - http:
      paths:
      - path: /
        backend:
          serviceName: apache-kubernetes
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

我有一个类似的部署和服务 yaml 文件,用于部署和创建 nginx Web 服务器。我还运行了以下命令所有部署都需要以下强制命令。

kubectl …
Run Code Online (Sandbox Code Playgroud)

kubernetes amazon-eks nginx-ingress

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

将更改应用于图像后,数据将丢失

我正在尝试将Elasticsearch添加到EKS集群中。但是,每当我应用更改时,我的数据都会丢失。看来我已附加的卷已更改并回收。

metadata:
  name: elasticsearch-uat
  labels:
    component: elasticsearch-uat
spec:
  replicas: 1
  serviceName: elasticsearch-uat
  template: 
    metadata:
      ...
    spec:
      initContainers: 
      - name: init-sysctl
        ...
      containers:
      - name: es 
        securityContext:
          capabilities:
            add:
              - IPC_LOCK
        image: 559076975273.dkr.ecr.us-west-2.amazonaws.com/elasticsearch-s3:v2
        env:
        ...
        ports:
        - containerPort: 9200
          name: http
          protocol: TCP
        - containerPort: 9300
          name: transport
          protocol: TCP
        volumeMounts: 
        - mountPath: /data
          name: es-storage-uat
  updateStrategy:
    type: RollingUpdate
  volumeClaimTemplates:
  - metadata:
      namespace: k8
      name: es-storage-uat
    spec:
      storageClassName: gp2
      accessModes: [ ReadWriteOnce ]
      resources:
        requests:
          storage: 2Gi
Run Code Online (Sandbox Code Playgroud)

这是一个有状态的集

请帮助我理解这个概念。我不希望我的数据在任何情况下都丢失。

提前致谢。

在此处输入图片说明

elasticsearch kubernetes amazon-eks

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

如何从 kubernetes 服务(EKS)中的 HTTP 请求获取客户端 IP

我们将 ms 作为 ALB 入口(ALB 负载均衡器)后面的 pod 运行。我的问题是所有 HTTP 请求日志都显示集群 IP 地址而不是 HTTP 客户端的 IP。有没有其他方法可以让 kubernetes 服务将此信息传递给我的应用服务器以显示客户端 IP 地址?即使尝试使用 java 代码 usig get.remote.address 函数,结果仍然相同。我知道有一种方法“service.spec.externalTrafficPolicy”,但这仅适用于 GCE 广告,不适用于 AWS。任何帮助!!!!!!

clientip kubernetes kubernetes-ingress amazon-eks

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

EKS cron 作业部署失败

我正在尝试部署我的第一个 cron 作业。

\n

从一个非常简单的开始,如 k8s教程中所述:

\n
apiVersion: batch/v1\nkind: CronJob\nmetadata:\n  name: hello\nspec:\n  schedule: "*/1 * * * *"\n  jobTemplate:\n    spec:\n      template:\n        spec:\n          containers:\n          - name: hello\n            image: busybox\n            imagePullPolicy: IfNotPresent\n            command:\n            - /bin/sh\n            - -c\n            - date; echo Hello from the Kubernetes cluster\n          restartPolicy: OnFailure\n
Run Code Online (Sandbox Code Playgroud)\n

我已连接到我的 EKS 集群。这是命令和输出:

\n
\xe2\x9e\x9c  Dev kubectl apply -f cronjob.yaml                                         \nerror: unable to recognize "cronjob.yaml": no matches for kind "CronJob" in version "batch/v1" \n
Run Code Online (Sandbox Code Playgroud)\n

并且 batch/v1 确实存在于我的 apiVersion 列表中。

\n

无法理解出了什么问题.. …

yaml amazon-web-services kubernetes amazon-eks

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

如何跨多个可用区启用AWS EBS Volume?

如何从多个可用区访问 AWS EBS 卷?

我的案例详细:

我有一个跨多个可用区的 VPC:

data "aws_availability_zones" "available" {}

module "vpc" {
    source = "terraform-aws-modules/vpc/aws"
    version = "3.10.0"

    name = "${local.project_slug}-main-vpc"
    cidr = "10.0.0.0/16"
    azs = data.aws_availability_zones.available.name
...
Run Code Online (Sandbox Code Playgroud)

在此集群中,我有一个 max_capacity 为 n 的托管节点组:

module "eks" {
    source  = "terraform-aws-modules/eks/aws"
    version = "17.22.0"

    cluster_name = "${local.project_slug}-main-eks"
    cluster_version = "1.19" # K8s version

    vpc_id = module.vpc.vpc_id
    subnets = module.vpc.public_subnets

    # managed nodes
    node_groups = {
      grey = {
        desired_capacity = 1
        min_capacity     = 1
        max_capacity     = 10
        instance_types = ["t3.medium"] …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform persistent-volumes amazon-eks

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