Pulumi Amazon Web Services(AWS)EKS组件。
pulumi-eks的Python项目详细描述
Pulumi Amazon Web Services(AWS)EKS组件
用于轻松创建和管理EKS-Kubernetes集群的Pulumi库。在
简介
pulumi/eks
提供了一个Pulumi组件,该组件创建和管理运行AWS中EKS-Kubernetes集群所需的资源。在
这包括:
- EKS群集控制平面。在
- 集群的工作节点配置为节点组,由自动缩放组管理。在
- AWS CNI插件^{
} 来管理Kubernetes中的pod网络。在
参考文献
先决条件
- Install Pulumi。在
- 安装Node.js。在
- 为安装包管理器节点.js,例如NPM或{a21}。在
- Install and Configure the AWS CLI。
- 使用AWS CLI version>;=
1.18.17
。在 - 有关详细信息,请参阅AWS docs。在
- 使用AWS CLI version>;=
- Install ^{
} 。在
安装
此包提供JavaScript/TypeScript格式,可用于节点.js. 使用npm
或yarn
安装它。在
npm
:
$ npm install @pulumi/eks
{cd6}:
^{pr2}$快速示例
创建默认EKS群集
默认集群配置将使用AWS用户的默认VPC
或临时登录的角色。它将创建EKS控制平面和默认值
使用两个t2.medium
EC2实例的自动调整组的工作节点组。在
import*aseksfrom"@pulumi/eks";// Create an EKS cluster with the default configuration.constcluster=neweks.Cluster("my-cluster");// Export the cluster's kubeconfig.exportconstkubeconfig=cluster.kubeconfig;
一旦创建了集群,就可以使用通常的方法将其部署到集群中
例如kubectl
和Helm,或者使用
^{
您可以通过查询
stack为其
output已导出
变量,如果直接使用kubectl
或Helm工具。在
pulumi stack output kubeconfig > kubeconfig.json exportKUBECONFIG=$PWD/kubeconfig.json
展开舵图
此示例创建一个EKS集群,然后从
稳定回购。我们从它的Pulumi provider中提取集群的kubeconfig
,以专门针对这个集群进行部署
^{
import*aseksfrom"@pulumi/eks";import*ask8sfrom"@pulumi/kubernetes";// Create an EKS cluster.constcluster=neweks.Cluster("my-cluster");// Deploy Wordpress into our cluster.constwordpress=newk8s.helm.v2.Chart("wordpress",{repo:"stable",chart:"wordpress",values:{wordpressBlogName:"My Cool Kubernetes Blog!",},},{providers:{"kubernetes":cluster.provider}});// Export the cluster's kubeconfig.exportconstkubeconfig=cluster.kubeconfig;
部署工作负载
这个示例创建一个EKS集群,然后部署NGINX部署,然后
使用^{kubeconfig
来自群集的凭据
Pulumi provider。在
import*aseksfrom"@pulumi/eks";import*ask8sfrom"@pulumi/kubernetes";// Create an EKS cluster with the default configuration.constcluster=neweks.Cluster("my-cluster");// Create a NGINX Deployment and Service.constappName="my-app";constappLabels={appClass: appName};constdeployment=newk8s.apps.v1.Deployment(`${appName}-dep`,{metadata:{labels: appLabels},spec:{replicas: 2,selector:{matchLabels: appLabels},template:{metadata:{labels: appLabels},spec:{containers:[{name: appName,image:"nginx",ports:[{name:"http",containerPort: 80}]}],}}},},{provider: cluster.provider});constservice=newk8s.core.v1.Service(`${appName}-svc`,{metadata:{labels: appLabels},spec:{type:"LoadBalancer",ports:[{port: 80,targetPort:"http"}],selector: appLabels,},},{provider: cluster.provider});// Export the URL for the load balanced service.exportconsturl=service.status.loadBalancer.ingress[0].hostname;// Export the cluster's kubeconfig.exportconstkubeconfig=cluster.kubeconfig;
贡献
如果您有兴趣投稿,请参阅contributing docs。在
行为准则
{你可以阅读}守则。在
- 项目
标签: