2024年度地方技能竞赛大会 评分标准 1. 评分注意事项 工种名称 云计算 ※ 评分时请注意以下事项。 1) AWS 区域使用 ap-northeast-2。 2) 网页访问使用 Chrome 或 Firefox。 3) 网页中根据语言不同,显示的文案可能不同。 4) Shell 中命令的输出可能因版本不同而略有差异。 5) 试题和评分表中的 <> 是变量。请修改相应部分后输入。 6) 评分必须按题目顺序进行。 7) 删除评分不可撤销,请谨慎进行。 8) 异议申请全部结束后,删除选手创建的云资源。 9) 有部分分数的题目,评分项中已写明部分分数。 10) 没有单独部分分数的题目,必须全部答对才计分。 11) 评分开始前,为进行环境设置,必须确认以下事项。 - 确认能否通过 SSH 访问 Bastion。 - 确认 Bastion 上是否安装了 AWS CLI v2、cURL、jq、kubectl。 - 确认 Bastion 上是否映射了 IAM Role,从而可通过 AWS CLI 访问 AWS 的所有资源。 - 通过 aws sts get-caller-identity 命令确认是否访问的不是选手的账户,而是其他账户。如果为其他账户,则可怀疑存在作弊行为。 12) 评分前,为配置评分环境,请在 ~/.aws/config 中添加以下内容。 [default] region = ap-northeast-2 output = json 13) 评分时,可以执行单独提供的评分脚本(mark.sh)进行评分。但若选手希望直接输入,则可以按照评分标准表中写明的命令原样输入进行评分。 云计算 第1课题 16 - 1 2. 评分标准表 1) 主要项目分值 | 任务 | 序号 | 编号 | 主要项目 | 分值 | 评分方法 | | 评分时机 | | 备注 | | | | | | | 独立 | 合议 | 比赛进行中 | 比赛结束后 | | | 第1课题 | 1 | | Networking | 4.5 | ○ | ○ | | | | | | 2 | | Bastion Server | 3.0 | ○ | ○ | | | | | | 3 | | NoSQL Database | 12.0 | ○ | ○ | | | | | | 4 | | In-Memory Database | 13.5 | ○ | ○ | | | | | | 5 | | Image Repository | 6.0 | ○ | ○ | | | | | | 6 | | Container Orchestration | 6.0 | ○ | ○ | | | | | | 7 | | Load Balancing | 1.5 | ○ | ○ | | | | | | 8 | | Application | 4.5 | ○ | ○ | | | | | | 9 | | Logging | 3.0 | ○ | ○ | | | | | | 10 | | Auto Scaling | 6.0 | ○ | ○ | | | | | | | | 合计 | 60 | | | | | | 云计算 第1课题 16 - 2 2) 评分方法及标准 | 任务 | 主要项目 | 序号 | 详细项目(评分方法) | 分值 | | 第1课题 | Networking | 1 | VPC 确认 | 1.5 | | | | 2 | Subnets 确认 | 1.5 | | | | 3 | Route Tables 确认 | 1.5 | | | Bastion Server | 1 | 实例类型确认 | 1.0 | | | | 2 | Public IP 确认 | 1.0 | | | | 3 | OS 确认 | 1.0 | | | NoSQL Database | 1 | DocumentDB Subnets 确认 | 1.5 | | | | 2 | DocumentDB 高可用性确认 | 1.5 | | | | 3 | DocumentDB 加密确认 | 1.5 | | | | 4 | DocumentDB 日志记录确认 | 1.5 | | | | 5 | DocumentDB 备份确认 | 1.5 | | | | 6 | DocumentDB 端口确认 | 1.5 | | | | 7 | DocumentDB 版本确认 | 1.5 | | | | 8 | DocumentDB 实例类型确认 | 1.5 | | | In-Memory Database | 1 | ElastiCache Subnets 确认 | 1.5 | | | | 2 | ElastiCache Redis Cluster 确认 | 1.5 | | | | 3 | ElastiCache 高可用性确认 | 1.5 | | | | 4 | ElastiCache 加密确认 | 1.5 | | | | 5 | ElastiCache 日志记录确认 | 1.5 | | | | 6 | ElastiCache 备份确认 | 1.5 | | | | 7 | ElastiCache 端口确认 | 1.5 | | | | 8 | ElastiCache 版本确认 | 1.5 | | | | 9 | ElastiCache 实例类型确认 | 1.5 | | | Image Repository | 1 | ECR Repository 创建确认 | 1.5 | | | | 2 | ECR Repository 加密确认 | 1.5 | | | | 3 | ECR Repository Scanning 确认 | 1.5 | | | | 4 | ECR Repository Immutable 确认 | 1.5 | | | Container Orchestration | 1 | EKS Cluster 配置确认 | 1.5 | | | | 2 | EKS Addon Nodegroup 配置确认 | 1.5 | | | | 3 | EKS App Nodegroup 配置确认 | 1.5 | | | | 4 | EKS App Fargate Profile 配置确认 | 1.5 | | | Load Balancing | 1 | ALB 配置确认 | 1.5 | | | Application | 1 | user Pod 配置确认 | 1.5 | | | | 2 | token Pod 配置确认 | 1.5 | | | | 3 | Application 运行确认 | 1.5 | | | Logging | 1 | user 应用程序日志记录确认 | 1.5 | | | | 2 | token 应用程序日志记录确认 | 1.5 | | | Auto Scaling | 1 | user Scaling Out | 1.5 | | | | 2 | user Scaling In | 1.5 | | | | 3 | token Scaling Out | 1.5 | | | | 4 | token Scaling In | 1.5 | | | 总分 | | | 60 | 云计算 第1课题 16 - 3 3) 评分内容 | 序号 | 评分项目 | | 1-1 | 1) 通过 SSH 访问 Bastion 服务器。
2) 输入以下命令。
`aws ec2 describe-vpcs --filter Name=tag:Name,Values=skills-vpc \`
`--query "Vpcs[].CidrBlock"`
3) 确认输出 10.100.0.0/16。 | | 1-2 | 1) 通过 SSH 访问 Bastion 服务器。
2) 输入以下命令。
`aws ec2 describe-subnets --filter Name=tag:Name,Values=skills-public-subnet-a \`
`--query "Subnets[].[AvailabilityZone, CidrBlock][]"`
3) 确认输出 ap-northeast-2a 和 10.100.1.0/24。
4) 输入以下命令。
`aws ec2 describe-subnets --filter Name=tag:Name,Values=skills-public-subnet-b \`
`--query "Subnets[].[AvailabilityZone, CidrBlock][]"`
5) 确认输出 ap-northeast-2b 和 10.100.2.0/24。
6) 输入以下命令。
`aws ec2 describe-subnets --filter Name=tag:Name,Values=skills-private-subnet-a \`
`--query "Subnets[].[AvailabilityZone, CidrBlock][]"`
7) 确认输出 ap-northeast-2a 和 10.100.11.0/24。
8) 输入以下命令。
`aws ec2 describe-subnets --filter Name=tag:Name,Values=skills-private-subnet-b \`
`--query "Subnets[].[AvailabilityZone, CidrBlock][]"`
9) 确认输出 ap-northeast-2b 和 10.100.12.0/24。
10) 输入以下命令。
`aws ec2 describe-subnets --filter Name=tag:Name,Values=skills-protected-subnet-a \`
`--query "Subnets[].[AvailabilityZone, CidrBlock][]"`
11) 确认输出 ap-northeast-2a 和 10.100.21.0/24。
12) 输入以下命令。
`aws ec2 describe-subnets --filter Name=tag:Name,Values=skills-protected-subnet-b \`
`--query "Subnets[].[AvailabilityZone, CidrBlock][]"`
13) 确认输出 ap-northeast-2b 和 10.100.22.0/24。 | 云计算 第1课题 16 - 4 | 序号 | 评分项目 | | 1-3 | 1) 通过 SSH 访问 Bastion 服务器。
2) 输入以下命令。
`aws ec2 describe-route-tables --filter Name=tag:Name,Values=skills-public-rtb \`
`--query "RouteTables[].Routes[].GatewayId"`
3) 确认输出以 igw- 开头的字符串。
4) 输入以下命令。
`aws ec2 describe-internet-gateways --filter Name=tag:Name,Values=skills-igw \`
`--query "InternetGateways[].InternetGatewayId"`
5) 确认以 igw- 开头的字符串与 2) 中输出的字符串相同。0.5 分。
6) 输入以下命令。
`aws ec2 describe-route-tables --filter Name=tag:Name,Values=skills-private-rtb-a \`
`--query "RouteTables[].Routes[].NatGatewayId"`
7) 确认输出以 nat- 开头的字符串。
8) 输入以下命令。
`aws ec2 describe-nat-gateways --filter Name=tag:Name,Values=skills-nat-a \`
`--query "NatGateways[].NatGatewayId"`
9) 确认以 nat- 开头的字符串与 6) 中输出的字符串相同。
10) 输入以下命令。
`aws ec2 describe-route-tables --filter Name=tag:Name,Values=skills-private-rtb-b \`
`--query "RouteTables[].Routes[].NatGatewayId"`
11) 确认输出以 nat- 开头的字符串。
12) 输入以下命令。
`aws ec2 describe-nat-gateways --filter Name=tag:Name,Values=skills-nat-b \`
`--query "NatGateways[].NatGatewayId"`
13) 确认以 nat- 开头的字符串与 10) 中输出的字符串相同。0.5 分。
14) 输入以下命令。
`aws ec2 describe-route-tables --filter Name=tag:Name,Values=skills-protected-rtb \`
`--query "RouteTables[0].Routes[*].DestinationCidrBlock"`
15) 确认仅输出 10.100.0.0/16。0.5 分。 | 云计算第1次作业 16 - 5 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 2-1 aws ec2 describe-instances --filter Name=tag:Name,Values=skills-bastion-ec2 \ --query "Reservations[].Instances[].InstanceType" 3) 确认输出 t4g.small。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws ec2 describe-instances --filter Name=tag:Name,Values=skills-bastion-ec2 \ 2-2 --query "Reservations[].Instances[].PublicIpAddress" 3) 记录 2) 中输出的 IP。 4) 输入以下命令。 aws ec2 describe-addresses --query "Addresses[].PublicIp" 5) 确认在输出的 IP 列表中是否存在 3) 中记录的 IP。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws ec2 describe-instances --filter Name=tag:Name,Values=skills-bastion-ec2 \ 2-3 --query "Reservations[].Instances[].ImageId" 3) 记录以 ami- 开头的 AMI ID。 4) 输入以下命令。 aws ec2 describe-images --image-ids <2)에서 기록한 AMI ID> --query "Images[].Description" 5) 确认输出包含 Amazon Linux 2023 的语句。 云计算第1次作业 16 - 6 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].DBSubnetGroup" 3) 记录执行命令时输出的语句。 4) 输入以下命令。 3-1 aws docdb describe-db-subnet-groups --db-subnet-group-name <3)에서 기록한 문구> \ --query "DBSubnetGroups[].Subnets[].SubnetIdentifier" 5) 确认仅输出 2 个以 subnet- 开头的语句。 6) 输入以下命令。 aws ec2 describe-subnets \ --subnet-ids <3에서 출력된 문구의 첫번째> <3에서 출력된 문구의 두번째> \ --query "Subnets[].CidrBlock" 7) 确认仅输出 10.100.21.0 和 10.100.22.0 两个。只要有一个不同即为错误。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 3-2 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].MultiAZ" 3) 确认输出 true。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 3-3 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].StorageEncrypted" 3) 确认输出 true。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 3-4 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].EnabledCloudwatchLogsExports" 3) 确认输出 audit 和 profiler 两个。 云计算第1次作业 16 - 7 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 3-5 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].BackupRetentionPeriod" 3) 确认未输出 0(即大于等于 1)。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 3-6 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].Port" 3) 确认输出的端口不是 27015。0.3 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 3-7 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].EngineVersion" 3) 确认输出 5.0.0。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws docdb describe-db-clusters --db-cluster-identifier skills-mongodb-cluster \ --query "DBClusters[].DBClusterMembers[0].DBInstanceIdentifier" 3-8 3) 记录以 skills-mongodb-cluster 开头的语句。 4) 输入以下命令。 aws docdb describe-db-instances --db-instance-identifier <3에서 기록한 문구> \ --query "DBInstances[].DBInstanceClass" 5) 确认输出 db.t4g.medium。 云计算第1次作业 16 - 8 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].NodeGroups[0].NodeGroupMembers[0].CacheClusterId" 3) 记录执行命令时输出的语句。 4) 输入以下命令。 aws elasticache describe-cache-clusters --cache-cluster-id <2)에서 기록한 문구> \ --query "CacheClusters[].CacheSubnetGroupName" 4-1 5) 记录执行命令时输出的语句。 6) 输入以下命令。 aws elasticache describe-cache-subnet-groups --cache-subnet-group-name <3)에서 기록한 문구> \ --query "CacheSubnetGroups[].Subnets[].SubnetIdentifier" 7) 确认仅输出 2 个以 subnet- 开头的语句。 8) 输入以下命令。 aws ec2 describe-subnets \ --subnet-ids <3에서 출력된 문구의 첫번째> <3에서 출력된 문구의 두번째> \ --query "Subnets[].CidrBlock" 9) 确认仅输出 10.100.21.0 和 10.100.22.0 两个。只要有一个不同即为错误。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 4-2 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].ClusterEnabled" 3) 确认输出 true。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].AutomaticFailover" 4-3 3) 确认输出 enabled。0.7 分。 4) 输入以下命令。 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].MultiAZ" 5) 确认输出 enabled。0.8 分。 云计算第1次作业 16 - 9 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].AtRestEncryptionEnabled" 4-4 3) 确认输出 true。0.8 分。 4) 输入以下命令。 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].TransitEncryptionEnabled" 5) 确认输出 true。0.7 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 4-5 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].LogDeliveryConfigurations[].Status" 3) 确认输出 2 个 active。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 4-6 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].SnapshotRetentionLimit" 3) 确认未输出 0(是否为 1 或以上)。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 4-7 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].ConfigurationEndpoint.Port" 3) 确认输出的端口不是 6379。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].NodeGroups[0].NodeGroupMembers[0].CacheClusterId" 4-8 3) 记录以 skills-redis-cluster- 开头的字符串。 4) 输入以下命令。 aws elasticache describe-cache-clusters --cache-cluster-id <3)中记录的字符串> \ --query "CacheClusters[].EngineVersion" 5) 确认输出以 7.0 开头的字符串。 云计算第1次作业 16 - 10 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 4-9 aws elasticache describe-replication-groups --replication-group-id skills-redis-cluster \ --query "ReplicationGroups[].CacheNodeType" 3) 确认输出 cache.t4g.small。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 5-1 aws ecr describe-repositories --repository-names user token \ --query "repositories[].repositoryName" 3) 确认输出 user 和 token。各 0.75 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 5-2 aws ecr describe-repositories --repository-names user token \ --query "repositories[].encryptionConfiguration[].encryptionType" 3) 确认输出 KMS。每个 0.75 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 5-3 aws ecr describe-repositories --repository-names user token \ --query "repositories[].imageScanningConfiguration.scanOnPush" 3) 确认输出 true。每个 0.75 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 5-4 aws ecr describe-repositories --repository-names user token \ --query "repositories[].imageTagMutability" 3) 确认输出 IMMUTABLE。每个 0.75 分。 云计算第1次作业 16 - 11 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws eks describe-cluster --name skills-eks-cluster --query "cluster.logging.clusterLogging" 3) 确认输出 api、audit、authenticator、controllerManager、scheduler。各 0.1 分。 4) 输入以下命令。 6-1 aws eks describe-cluster --name skills-eks-cluster \ --query "cluster.encryptionConfig[].provider.keyArn" 5) 确认输出以 arn:aws:kms 开头的字符串。0.5 分。 6) 输入以下命令。 aws eks describe-cluster --name skills-eks-cluster \ --query "cluster.resourcesVpcConfig.[endpointPublicAccess, endpointPrivateAccess]" 7) 确认按顺序输出 false、true。0.5 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws eks describe-nodegroup --cluster-name skills-eks-cluster \ --nodegroup-name skills-eks-addon-nodegroup --query "nodegroup.nodegroupName" 3) 确认输出 skills-eks-addon-nodegroup。0.5 分。 4) 输入以下命令。 kubectl get no -l "eks.amazonaws.com/nodegroup=skills-eks-addon-nodegroup" --output json \ 6-2 | jq ".items[].metadata.labels | .\"eks.amazonaws.com/nodegroup\" + \" \" + .\"topology.kubernetes.io/zone\"" 5) 确认分别输出至少 1 个 skills-eks-addon-nodegroup ap-northeast-2a 和 skills-eks-addon-nodegroup ap-northeast-2b。0.5 分。 6) 输入以下命令。 kubectl get no -l "eks.amazonaws.com/nodegroup=skills-eks-addon-nodegroup" --output json \ | jq ".items[].metadata.labels.\"node.kubernetes.io/instance-type\"" 7) 确认输出至少 2 个 t4g.large。0.5 分。 云计算第1次作业 16 - 12 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws eks describe-nodegroup --cluster-name skills-eks-cluster \ --nodegroup-name skills-eks-app-nodegroup --query "nodegroup.nodegroupName" 3) 确认输出 skills-eks-addon-nodegroup。0.5 分。 4) 输入以下命令。 kubectl get no -l "eks.amazonaws.com/nodegroup=skills-eks-app-nodegroup" --output json \ 6-3 | jq ".items[].metadata.labels | .\"eks.amazonaws.com/nodegroup\" + \" \" + .\"topology.kubernetes.io/zone\"" 5) 确认分别输出至少 1 个 skills-eks-app-nodegroup ap-northeast-2a 和 skills-eks-app-nodegroup ap-northeast-2b。0.5 分。 6) 输入以下命令。 kubectl get no -l "eks.amazonaws.com/nodegroup=skills-eks-app-nodegroup" --output json \ | jq ".items[].metadata.labels.\"node.kubernetes.io/instance-type\"" 7) 确认输出至少 2 个 m6g.large。0.5 分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 6-4 aws eks describe-fargate-profile --cluster-name skills-eks-cluster \ --fargate-profile-name skills-eks-app-profile \ --query "fargateProfile.fargateProfileName" 3) 确认输出 skills-eks-app-profile。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 7-1 aws elbv2 describe-load-balancers --names skills-user-alb \ --query "LoadBalancers[].Scheme" 3) 确认输出 internet-facing。 云计算第1次作业 16 - 13 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 kubectl get pod -n skills | grep user 3) 确认输出至少 2 个 user Pod,并且全部都处于 (数字1)/(数字2) Running 状态。(数字1)和(数字2)必须不为 0 且彼此相同。参考上图。0.7 分。 8-1 4) 输入以下命令。 kubectl get pod -n skills -o json | jq '.items[]' \ | jq 'select(.metadata.name | startswith("user"))' \ | jq -r '.spec.nodeName' | head -n 1 5) 记录以 ip- 开头的字符串。 6) 输入以下命令。 kubectl get node <5)中记录的 node id> -o json \ | jq -r '.metadata.labels."eks.amazonaws.com/nodegroup"' 7) 确认输出 skills-eks-app-nodegroup。0.8 分 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 kubectl get pod -n skills | grep token 3) 确认输出至少 2 个 token Pod,并且全部都处于 (数字1)/(数字2) Running 状态。(数字1)和(数字2)必须不为 0 且彼此相同。参考上图。0.7 分。 8-2 4) 输入以下命令。 kubectl get pod -n skills -o json | jq '.items[]' \ | jq 'select(.metadata.name | startswith("token"))' \ | jq -r '.spec.nodeName' | head -n 1 5) 记录以 fargate-ip- 开头的字符串。 6) 输入以下命令。 kubectl get pod -n skills -o json \ | jq '.items[]' | jq 'select(.metadata.name | startswith("token"))' \ | jq -r '.metadata.annotations.CapacityProvisioned' | head -n 1 7) 确认是否输出 0.5vCPU 1GB。0.8分 云计算第1次作业 16 - 14 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 aws elbv2 describe-load-balancers --names skills-user-alb \ --query "LoadBalancers[].DNSName" 3) 记录以 skills-user-alb- 开头的域名。 4) 输入以下命令。 8-3 curl http://<3)中记录的域名)>/api/v1/user \ -X POST -H 'Content-Type: application/json' \ -d '{"id": "test9999", "name": "test9999", "password": "test9999"}' 5) 确认是否输出 token 值。记录该 token 值。0.7分。 6) 输入以下命令。 curl http://<3)中记录的域名)>/api/v1/user?token=<5)中记录的 token 值> 7) 确认是否输出 "token is valid" 字样。0.8分。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 9-1 aws logs tail /aws/app/user | tail -n 1 3) 确认日志时间与当前时间相近。误差允许在1分钟以内。由于时区是 UTC, 因此需要加 9 后计算。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 9-2 aws logs tail /aws/app/token | tail -n 1 3) 确认日志时间与当前时间相近。误差允许在1分钟以内。由于时区是 UTC, 因此需要加 9 后计算。 云计算第1次作业 16 - 15 序号 评分项 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。(将评分脚本保存到 Bastion 服务器后执行。) chmod 755./load-token.sh ./load-user.sh 3) 执行上述脚本 5 分钟后,终止。 10-1 4) 输入以下命令。 kubectl get pod -n skills | grep user 5) 确认是否至少输出 3 个 user Pod。 6) 输入以下命令。 kubectl get node -o json | jq '.items[].metadata.labels' \ | jq -c 'select(."eks.amazonaws.com/nodegroup" == "skills-eks-app-nodegroup")' | wc -l 7) 确认是否输出 3 个或以上。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。 kubectl get pod -n skills | grep user 10-2 3) 确认是否仅输出 2 个 user Pod。最多可以等待 20 分钟。 4) 输入以下命令。 kubectl get node -o json | jq '.items[].metadata.labels' \ | jq -c 'select(."eks.amazonaws.com/nodegroup" == "skills-eks-app-nodegroup")' | wc -l 5) 确认是否输出 2。最多可以等待 20 分钟。 1) 通过 SSH 访问 Bastion 服务器。 2) 输入以下命令。(将评分脚本保存到 Bastion 服务器后执行。) chmod 755./load-token.sh 10-3 ./load-token.sh 3) 执行上述脚本 5 分钟后,终止。 4) 输入以下命令。 kubectl get pod -n skills | grep token 5) 确认是否至少输出 3 个 token Pod。 1) 通过 SSH 访问 Bastion 服务器。 10-4 2) 输入以下命令。 kubectl get pod -n skills | grep token 3) 确认是否仅输出 2 个 token Pod。最多可以等待 20 分钟。 云计算第1次作业 16 - 16