Tuh*_*dal 1 kubectl amazon-eks eksctl
我在 EKS 上创建了一个 kubernetes 集群。我使用 eksctl create cluster 创建集群。我能够访问一切是伟大的。
但是,我的同事创建了另一个集群,我想知道如何生成/获取 cobeconfigs 以便我可以指向我的同事创建的集群。
如果您禁用了集群的 Kubernetes API 服务器终端节点的公共访问,则您只能从 VPC 或 连接的网络内访问 API 服务器。以下是访问 Kubernetes API 服务器端点的几种可能方法:
\n\n连接网络\xe2\x80\x93 使用AWS 中转网关 或其他 连接选项 将您的网络连接到 VPC ,然后使用连接网络中的计算机。您必须确保您的 Amazon EKS 控制平面安全组包含允许来自连接网络的端口 443 上的入口流量的规则。
Amazon EC2 堡垒主机 \xe2\x80\x93 您可以在集群 VPC 中的公有子网中启动 Amazon EC2 实例,然后通过 SSH 登录到该实例以运行 kubectl 命令。有关更多信息,请参阅 AWS 上的 Linux 堡垒主机。您必须确保您的 Amazon EKS 控制平面安全组包含允许来自堡垒主机的端口 443 上的入口流量的规则。有关更多信息,请参阅 Amazon EKS 安全组注意事项。
当您配置 kubectl 堡垒主机时,请务必使用已映射到集群的 RBAC 配置的 AWS 凭证,或者在删除终端节点公共访问权限之前将堡垒将使用的 IAM 用户或角色添加到 RBAC 配置。有关更多信息,请参阅 管理集群的用户或 IAM 角色 和 未经授权或访问被拒绝 (kubectl)。
AWS Cloud9 IDE \xe2\x80\x93 AWS Cloud9 是一个基于云的集成开发环境 (IDE),让您只需使用浏览器即可编写、运行和调试代码。您可以在集群的 VPC 中创建 AWS Cloud9 IDE 并使用该 IDE 与集群进行通信。有关更多信息,请参阅 在 AWS Cloud9 中创建环境。您必须确保您的 Amazon EKS 控制平面安全组包含允许来自 IDE 安全组的端口 443 上的入口流量的规则。有关更多信息,请参阅 Amazon EKS 安全组注意事项。
\n\n当您配置 kubectl AWS Cloud9 IDE 时,请务必使用已映射到集群的 RBAC 配置的 AWS 凭证,或者在删除终端节点公共访问权限之前将 IDE 将使用的 IAM 用户或角色添加到 RBAC 配置中。有关更多信息,请参阅 管理集群的用户或 IAM 角色 和 未经授权或访问被拒绝 (kubectl)。\n请查看此处:eks-endpoints-access。
可能的替代方案是使用多个单租户 Amazon EKS 集群。通过此策略,每个租户都可以在共享 AWS 帐户中使用自己的 Kubernetes 集群,或者在大型企业的组织内使用专用帐户。\n部署集群后,您可能希望了解所有已部署集群的概览,以监控每个租户,确保我们正在运行最新版本的 EKS 控制平面并大规模运行。Rancher 是一种流行的开源工具,用于管理多个 Kubernetes 集群,请务必查看 开源博客上的这篇文章, 了解有关如何部署和使用它的详细信息。
\n\n如果您同事的集群位于同一个VPC中,我建议您使用AWS App Mesh。App Mesh 是一个服务网格,可让您控制和监控部署在同一 VPC 中的两个集群的服务。
\n\n架构:\n
为了成功地进行基地部署:
\n\nkubectl 安装,至少版本 1.11 或更高版本。jq 安装.aws-iam-authenticator 安装eksctl 所需的brew tap weaveworks/tapbrew install weaveworks/tap/eksctl0.1.26请注意,本演练假设始终在该区域中运行 us-east-1 。
假设两个集群都在工作并且
\n\nKUBECONFIG 根据 输出分别更新 每个集群上的环境变量eksctl :
\n在相应选项卡中运行以下命令。
export KUBECONFIG=~/.kube/eksctl/clusters/first-cluster \n\nexport KUBECONFIG=~/.kube/eksctl/clusters/second-cluster\nRun Code Online (Sandbox Code Playgroud)\n\n您现在已经设置了两个集群并将 kubectl 指向各自的集群。
\n\n现在是时候部署 App Mesh 自定义组件了
\n\n要在创建 Pod 时自动注入 App Mesh 组件和代理,您需要在集群上创建一些自定义资源。 为此使用 头盔。在两个集群上安装tiler ,然后使用 helm 在两个集群上运行以下命令。
\n\n下载 App Mesh 存储库
\n\n>> git clone https://github.com/aws/aws-app-mesh-examples (https://github.com/aws/aws-app-mesh-examples).git\n>> cd aws-app-mesh-examples/walkthroughs/howto-k8s-cross-cluster\n\nRun Code Online (Sandbox Code Playgroud)\n\n安装头盔
\n\n>>brew install kubernetes-helm\nRun Code Online (Sandbox Code Playgroud)\n\n安装舵柄
\n\n使用helm需要在集群上安装一个名为tiller的服务器端组件。按照文档中的说明 在两个集群上安装tiler。
\n\n验证耕耘机安装
\n\n>>kubectl get po -n kube-system | grep -i tiller\ntiller-deploy-6d65d78679-whwzn 1/1 Running 0 5h35m\n\nRun Code Online (Sandbox Code Playgroud)\n\n安装 App Mesh 组件
\n\n运行以下命令集来安装 App Mesh 控制器和注入器组件。
\n\nhelm repo add eks https://aws.github.io/eks-charts\nkubectl create ns appmesh-system\nkubectl apply -f https://raw.githubusercontent.com/aws/eks-charts/master/stable/appmesh-controller/crds/crds.yaml\nhelm upgrade -i appmesh-controller eks/appmesh-controller --namespace appmesh-system\nhelm upgrade -i appmesh-inject eks/appmesh-inject --namespace appmesh-system --set mesh.create=true --set mesh.name=global\n\nRun Code Online (Sandbox Code Playgroud)\n\n现在,您已准备好将示例 front 和 colorapp 应用程序与 App Mesh 一起部署到各自的集群,这将跨越两个集群。
\n\n您应该位于 walkthrough/howto-k8s-cross-cluster 文件夹中,所有命令都将从该位置运行。
您的帐户 ID:
export AWS_ACCOUNT_ID=<your_account_id>\nRun Code Online (Sandbox Code Playgroud)\n\nexport AWS_DEFAULT_REGION=us-east-1\nRun Code Online (Sandbox Code Playgroud)\n\nexport ENVOY_IMAGE=...\nRun Code Online (Sandbox Code Playgroud)\n\nVPC_ID环境变量设置为启动 Kubernetes Pod 的 VPC。VPC 将用于使用 create-private-dns-namespace API 在 AWS 中设置aws eks describe-cluster。请参阅下文了解为什么需要 AWS Cloud Map PrivateDnsNamespace。export VPC_ID=...\nRun Code Online (Sandbox Code Playgroud)\n\nexport CLUSTER1=first-cluster\nexport CLUSTER2=second-cluster\nRun Code Online (Sandbox Code Playgroud)\n\n部署
\n\n./deploy.sh\nRun Code Online (Sandbox Code Playgroud)\n\n最后记得验证部署。\n您可以在此处找到更多信息:app-mesh-eks。
\n| 归档时间: |
|
| 查看次数: |
4355 次 |
| 最近记录: |