AWS Kubernetes 工作坊安装与使用指南

AWS Kubernetes 工作坊安装与使用指南

【免费下载链接】aws-workshop-for-kubernetes AWS Workshop for Kubernetes 【免费下载链接】aws-workshop-for-kubernetes 项目地址: https://gitcode.com/gh_mirrors/aw/aws-workshop-for-kubernetes

概述

Amazon Web Services (AWS) Kubernetes 工作坊是一个自定进度的实践教程,专为希望在 AWS 上利用 Kubernetes 的开发团队和运维团队设计。本指南将详细介绍如何安装、配置和使用这个工作坊环境,帮助您快速掌握在 AWS 上运行 Kubernetes 集群的核心技能。

环境准备

系统要求

在开始之前,请确保您具备以下条件:

  • AWS 账户(将产生费用,预计每天 < $20)
  • 基本的 AWS 服务了解(EC2、VPC、IAM 等)
  • 基本的 Kubernetes 概念理解
  • 稳定的网络连接

费用说明

⚠️ 重要提醒:使用本工作坊会产生 AWS 服务费用,主要包括:

  • EC2 实例费用(Cloud9 环境和工作节点)
  • EBS 存储费用
  • 网络传输费用
  • 其他 AWS 服务费用

建议在使用完成后及时清理资源以避免不必要的费用。

安装步骤

1. 创建 Cloud9 开发环境

AWS Cloud9 是一个基于云的集成开发环境(IDE),让您可以通过网页浏览器编写、运行和调试容器化工作负载。

通过 CloudFormation 创建环境

使用以下 CloudFormation 模板创建开发环境:

选择区域选项:

区域新建 VPC使用现有 VPC
北弗吉尼亚 (us-east-1)部署到 AWS部署到 AWS
俄勒冈 (us-west-2)部署到 AWS部署到 AWS
部署步骤
  1. 点击相应的部署链接
  2. 接受默认的堆栈名称,点击 Next
  3. 添加标签(如 Key=Name, Value=k8s-workshop)
  4. 勾选 I acknowledge that AWS CloudFormation might create IAM resources with custom names
  5. 点击 Create

等待所有资源创建完成(状态变为 CREATE_COMPLETE)。

2. 配置 Cloud9 环境

禁用临时凭证

打开 Cloud9 IDE 后,进行以下配置:

  1. 打开 "AWS Cloud9" 菜单
  2. 进入 "Preferences" → "AWS Settings"
  3. 禁用 "AWS managed temporary credentials"
运行构建脚本

在 Cloud9 的终端中执行以下命令安装必要工具:

aws s3 cp s3://aws-kubernetes-artifacts/v0.5/lab-ide-build.sh . && \
chmod +x lab-ide-build.sh && \
. ./lab-ide-build.sh

该脚本将安装以下组件:

  • jq - JSON 处理工具
  • kubectl - Kubernetes 命令行工具
  • heptio/authenticator - EKS 集群认证工具
  • kops - Kubernetes 操作工具
  • 配置 AWS CLI 和环境变量
  • 创建 SSH 密钥
  • 克隆工作坊代码库

3. 创建 Kubernetes 集群

使用 Amazon EKS 创建集群

EKS (Elastic Kubernetes Service) 是 AWS 托管的 Kubernetes 服务,提供高可用性和自动管理。

创建主节点
aws eks create-cluster \
  --name k8s-workshop \
  --role-arn $EKS_SERVICE_ROLE \
  --resources-vpc-config subnetIds=${EKS_SUBNET_IDS},securityGroupIds=${EKS_SECURITY_GROUPS} \
  --kubernetes-version 1.10
检查集群状态
aws eks describe-cluster --name k8s-workshop --query cluster.status --output text

等待状态变为 ACTIVE(通常需要 5-10 分钟)。

创建 kubeconfig 文件
aws s3 cp s3://aws-kubernetes-artifacts/v0.5/create-kubeconfig.sh . && \
chmod +x create-kubeconfig.sh && \
. ./create-kubeconfig.sh
创建工作节点
aws cloudformation create-stack \
  --stack-name k8s-workshop-worker-nodes \
  --template-url https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/amazon-eks-nodegroup.yaml \
  --capabilities "CAPABILITY_IAM" \
  --parameters "[{\"ParameterKey\": \"KeyName\", \"ParameterValue\": \"${AWS_STACK_NAME}\"},
                 {\"ParameterKey\": \"NodeImageId\", \"ParameterValue\": \"${EKS_WORKER_AMI}\"},
                 {\"ParameterKey\": \"ClusterName\", \"ParameterValue\": \"k8s-workshop\"},
                 {\"ParameterKey\": \"NodeGroupName\", \"ParameterValue\": \"k8s-workshop-nodegroup\"},
                 {\"ParameterKey\": \"ClusterControlPlaneSecurityGroup\", \"ParameterValue\": \"${EKS_SECURITY_GROUPS}\"},
                 {\"ParameterKey\": \"VpcId\", \"ParameterValue\": \"${EKS_VPC_ID}\"},
                 {\"ParameterKey\": \"Subnets\", \"ParameterValue\": \"${EKS_SUBNET_IDS}\"}]"
启用工作节点加入集群
aws s3 cp s3://aws-kubernetes-artifacts/v0.5/aws-auth-cm.sh . && \
chmod +x aws-auth-cm.sh && \
. ./aws-auth-cm.sh
监控节点状态
kubectl get nodes --watch

等待所有节点状态变为 Ready

工作坊内容结构

AWS Kubernetes 工作坊包含多个学习路径,每个路径针对不同的使用场景:

基础路径 (Standard Path)

  • 101: 开始使用 - Cloud9 环境设置
  • 102: 创建第一个集群 - EKS 集群创建
  • 103: Kubernetes 概念 - 基础概念学习

开发路径 (Developer Path)

  • 301: 本地开发 - 本地开发环境配置
  • 302: 应用发现 - 服务发现机制
  • 303: 应用更新 - 滚动更新策略
  • 304: 应用扩缩容 - 自动扩缩容

运维路径 (Operations Path)

  • 201: 集群监控 - 监控方案部署
  • 202: 服务网格 - 服务网格集成
  • 203: 集群升级 - 集群升级策略
  • 204: 集群日志 - EFK 日志方案

核心功能特性

多集群管理

mermaid

使用 kubectl config 管理多个集群上下文:

# 查看所有上下文
kubectl config get-contexts

# 查看当前上下文
kubectl config current-context

# 切换上下文
kubectl config use-context <context-name>

高可用架构

mermaid

实践示例

部署简单应用

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
# 部署应用
kubectl apply -f deployment.yaml

# 查看部署状态
kubectl get deployments

# 查看 Pod 状态
kubectl get pods

# 查看服务详情
kubectl describe deployment nginx-deployment

服务暴露

# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

故障排除

常见问题及解决方案

问题症状解决方案
EKS 集群创建失败UnsupportedAvailabilityZoneException移除资源受限的可用区
节点无法加入集群Nodes stuck in NotReady检查 aws-auth ConfigMap
权限问题AccessDenied exceptions验证 IAM 角色权限
网络连接问题Pods cannot communicate检查安全组和网络策略

集群状态检查

# 检查集群健康状态
kubectl cluster-info

# 检查节点状态
kubectl get nodes -o wide

# 检查系统组件状态
kubectl get pods -n kube-system

# 检查事件日志
kubectl get events --sort-by='.lastTimestamp'

资源清理

完成工作坊学习后,请务必清理资源以避免持续产生费用。

清理步骤

  1. 删除工作节点

    # 删除 CloudFormation 堆栈
    aws cloudformation delete-stack --stack-name k8s-workshop-worker-nodes
    
  2. 删除 EKS 集群

    # 列出集群
    aws eks list-clusters
    
    # 删除集群
    aws eks delete-cluster --name k8s-workshop
    
  3. 删除 Cloud9 环境

    # 删除主堆栈
    aws cloudformation delete-stack --stack-name k8s-workshop
    

验证清理

# 确认所有资源已删除
aws cloudformation list-stacks --stack-status-filter DELETE_COMPLETE

# 确认无运行中的集群
aws eks list-clusters

最佳实践

安全实践

  1. 最小权限原则:为每个组件分配最小必要权限
  2. 网络隔离:使用网络策略限制 Pod 间通信
  3. 密钥管理:使用 AWS Secrets Manager 或 Kubernetes Secrets
  4. 审计日志:启用 CloudTrail 和 Kubernetes 审计日志

成本优化

  1. 使用 Spot 实例:对非关键工作负载使用 Spot 实例
  2. 自动扩缩容:配置 HPA 和 Cluster Autoscaler
  3. 资源限制:为 Pod 设置合理的资源请求和限制
  4. 定期清理:建立资源清理流程

性能优化

mermaid

总结

AWS Kubernetes 工作坊提供了一个完整的实践环境,帮助您:

  • ✅ 掌握在 AWS 上部署和管理 Kubernetes 集群
  • ✅ 学习现代容器化应用开发的最佳实践
  • ✅ 理解云原生应用的运维和监控
  • ✅ 构建高可用、可扩展的云原生架构

通过本指南,您已经了解了工作坊的安装配置流程、核心功能特性以及最佳实践建议。现在您可以开始探索工作坊中的各个模块,深入学习 Kubernetes 在 AWS 上的各种应用场景。

记住定期检查 AWS 费用控制台,确保在完成学习后及时清理资源,避免不必要的费用支出。

Happy Kuberneting! 🚀

【免费下载链接】aws-workshop-for-kubernetes AWS Workshop for Kubernetes 【免费下载链接】aws-workshop-for-kubernetes 项目地址: https://gitcode.com/gh_mirrors/aw/aws-workshop-for-kubernetes

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值