我让 AWS EKS 节点访问 RDS,其中我已在 RDS 安全组中将 EKS 节点的公共 IP 列入白名单。但这不是可行的解决方案,因为 EKS 节点可能会被替换,并且其公共 IP 可能会随之更改。
如何让该EKS节点与RDS的连接更加稳定?
我们有一个正在运行的 AWS EKS(使用 Pulumi 设置),我们在其中安装了 Tekton,如云原生 Buildpacks Tekton 文档中所述。示例项目可用。
我们的 Tekton 管道配置如下(也源自Cloud Native Buildpacks Tekton 文档):
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: buildpacks-test-pipeline
spec:
params:
- name: IMAGE
type: string
description: image URL to push
- name: SOURCE_URL
type: string
description: A git repo url where the source code resides.
- name: SOURCE_REVISION
description: The branch, tag or SHA to checkout.
default: ""
workspaces:
- name: source-workspace # Directory where application source is located. …Run Code Online (Sandbox Code Playgroud) 我已经尝试部署自我管理节点 EKS 集群有一段时间了,但没有成功。我现在遇到的错误是 EKS 插件:
错误:创建 EKS 插件时出错 (DevOpsLabs2b-dev-test--eks:kube-proxy):InvalidParameterException:不支持指定的插件版本,AddonName:“kube-proxy”,ClusterName:“DevOpsLabs2b-dev-test-- eks", Message_: "不支持指定的插件版本" } 在 .terraform/modules/eks-ssp-kubernetes-addons/modules 上使用 module.eks-ssp-kubernetes-addons.module.aws_kube_proxy[0].aws_eks_addon.kube_proxy /kubernetes-addons/aws-kube-proxy/main.tf 第 19 行,在资源“aws_eks_addon”“kube_proxy”中:
coredns 也会重复此错误,但 ebs_csi_driver 会抛出:
错误:创建期间返回意外的 EKS 附加组件 (DevOpsLabs2b-dev-test--eks:aws-ebs-csi-driver) 状态:等待状态变为“ACTIVE”时超时(最后状态:“DEGRADED”,超时: 20m0s) [警告] 再次运行 terraform apply 将删除 kubernetes 插件并尝试再次创建它,有效清除以前的插件配置
我的 main.tf 看起来像这样:
terraform {
backend "remote" {}
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 3.66.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = ">= 2.7.1"
}
helm = {
source = "hashicorp/helm"
version = ">= 2.4.1" …Run Code Online (Sandbox Code Playgroud) amazon-web-services kubernetes terraform terraform-provider-aws amazon-eks
我尝试根据标签列出 pod
// Kubernetes client - package kubernetes
clientset := kubernetes.NewForConfigOrDie(config)
// create a temp list for storage
var podslice []string
// Get pods -- package metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
pods, _ := clientset.CoreV1().Pods("").List(metav1.ListOptions{})
for _, p := range pods.Items {
fmt.Println(p.GetName())
}
Run Code Online (Sandbox Code Playgroud)
这相当于
kubectl get po
Run Code Online (Sandbox Code Playgroud)
有没有办法进入golang
kubectl get po -l app=foo
Run Code Online (Sandbox Code Playgroud)
提前致谢
go kubernetes google-kubernetes-engine kubernetes-go-client amazon-eks
有没有办法允许通过AWS中的VPC访问AWS S3存储桶中的对象而无需身份验证?我不想为此使用 AWS IAM 角色或用户。我不想禁用除 VPC 之外的所有对象的访问,因为对象应该通过 AWS 外部的 AWS IAM 角色进行访问。
目的:为在私有节点上的 AWS EKS Kubernetes 集群内运行的 GitLab Runner 提供 AWS S3 存储桶访问权限。
注意:公共访问已被阻止并将继续被阻止。所有对象都是私有的并且将保持私有。
amazon-s3 amazon-web-services amazon-vpc gitlab-ci-runner amazon-eks
我正在尝试安装一个简单的舵图,我得到:
Internal error occurred: failed calling webhook "mservice.elbv2.k8s.aws": failed to call webhook: the server could not find the requested resource
如果需要CloudFormation中的大量配置(又是另一项AWS服务),AWS的Elastic Kubernetes服务(EKS)到底能做什么?
我在(https://docs.aws.amazon.com/eks/latest/userguide/eks-ug.pdf)中的文档中遵循了《 AWS EKS入门》,在这里看来,运行EKS 十分需要CloudFormation知识。
我误会了吗?
因此,除了学习Kubernetes .yaml清单定义之外,要在EKS上运行k8,AWS还希望您也学习其CloudFormation .yaml配置清单(都是PascalCase,而不是我可能添加的k8s camelCase)?
我知道EKS会对k8的最新版本和控制平面进行一些管理,并且“默认情况下是安全的”,但除此之外吗?
那么,为什么我不立即使用kops在AWS上运行k8s,并处理稍微过时的k8s版本呢?
还是我应该做EKS + CloudFormation + kops,到那时GKE看起来是一个非常诱人的选择?
更新:
在这一点上,我真的认为EKS在详细搜索了EKS以及它如何如此依赖CloudFormation清单之后,只是CloudFormation的一个薄包装。
GKE可能是对k8令人震惊的受欢迎程度的一种商业回应,总体而言,GKE没有任何实质性支持。
希望这可以帮助节省任何人评估EKS半成品服务的时间。
我知道我们可以通过kubelet-extra-args创建带有标签的节点组:
--kubelet-extra-args --node-labels=foo=bar
Run Code Online (Sandbox Code Playgroud)
这种语法令我有些惊讶,因此我不确定如何添加多个标签。
我正在尝试设置 aws EKS 集群并希望从我的本地 Windows 工作站连接该集群。无法连接。这是我做的步骤;
Command:kubectl.exe get svc
Run Code Online (Sandbox Code Playgroud)
output:
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Kube 状态指标部署到kube-system运行 Kubernetes v1.14 的 EKS 集群 (eks.4) 中的命名空间中。
Kubernetes 连接
provider "kubernetes" {
host = var.cluster.endpoint
token = data.aws_eks_cluster_auth.cluster_auth.token
cluster_ca_certificate = base64decode(var.cluster.certificate)
load_config_file = true
}
Run Code Online (Sandbox Code Playgroud)
部署清单(作为 .tf)
resource "kubernetes_deployment" "kube_state_metrics" {
metadata {
name = "kube-state-metrics"
namespace = "kube-system"
labels = {
k8s-app = "kube-state-metrics"
}
}
spec {
replicas = 1
selector {
match_labels = {
k8s-app = "kube-state-metrics"
}
}
template {
metadata {
labels = {
k8s-app = "kube-state-metrics"
}
}
spec …Run Code Online (Sandbox Code Playgroud) amazon-eks ×10
kubernetes ×7
terraform ×2
amazon-rds ×1
amazon-s3 ×1
amazon-vpc ×1
gitlab ×1
gitlab-ci ×1
go ×1
tekton ×1