EKS Workshop for Greater China 教程
项目介绍
EKS Workshop for Greater China 是一个由 AWS 提供的开源项目,旨在帮助中国的开发者学习和使用 Amazon Elastic Kubernetes Service (EKS)。该项目包含了丰富的教程和实践案例,涵盖了从 EKS 集群的创建到应用部署的各个方面。
项目快速启动
环境准备
-
安装 AWS CLI
pip install awscli --upgrade --user
-
配置 AWS CLI
aws configure
-
安装 eksctl
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp sudo mv /tmp/eksctl /usr/local/bin
-
安装 kubectl
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl
创建 EKS 集群
-
创建集群配置文件
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: ap-northeast-1 nodeGroups: - name: ng-1 instanceType: m5.large desiredCapacity: 3
-
使用 eksctl 创建集群
eksctl create cluster -f cluster.yaml
应用案例和最佳实践
部署示例应用
-
部署一个简单的 Nginx 应用
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
-
创建服务
apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
使用 ALB Ingress
-
部署 ALB Ingress Controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.4/docs/examples/alb-ingress-controller.yaml
-
创建 Ingress 资源
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: nginx-service port: number: 80
典型生态项目
Karpenter
Karpenter 是一个用于 Kubernetes 节点弹性伸缩的开源组件,可以自动管理 EKS 集群中的 EC2 工作节点。
Istio
Istio 是一个服务网格,提供流量管理、安全性和可观测性等功能,可以与 EKS 集群集成,提升应用的可靠性和安全性。
Prometheus & Grafana
Prometheus 是一个开源的监控系统,Grafana 是一个开源的分析和监控平台,两者结合可以为