企业级容器云平台的落地与实施( 三 )

4.2.3. Eksctl执行之后,需要等待10分钟左右 。模式很简单的步骤,其实是AWS通过调用cloudformation在后台做了许多工作才完成的 。下图是cloudformation的stack步骤:

企业级容器云平台的落地与实施

文章插图
 
4.2.4. Amazon EKS完成后的,cloudformation状态
企业级容器云平台的落地与实施

文章插图
 
4.2.5. 查询node状态信息
#kubectl get nodeNAMESTATUSROLESAGEVERSIONip-192-168-5-37.cn-northwest-1.compute.internalReady<none>11mv1.15.12-eks-31566fip-192-168-58-97.cn-northwest-1.compute.internalReady<none>11mv1.15.12-eks-31566fip-192-168-65-234.cn-northwest-1.compute.internalReady<none>11mv1.15.12-eks-31566f4.2.6. 扩展集群节点方法
? 我们之前通过eksctl创建了一个3节点的集群[WHE5] [XX6],如果由于业务的增加,希望扩容的话,如何操作呢?具体命令参考如下,将当前集群,扩容到10个节点:
NODE_GROUP=$(eksctl get nodegroup --cluster ${CLUSTER_NAME} --region=${AWS_REGION} -o json | jq -r '.[].Name')eksctl scale nodegroup --cluster=${CLUSTER_NAME} --nodes=10 --name=${NODE_GROUP} --region=${AWS_REGION}检查结果
eksctl get nodegroup --cluster ${CLUSTER_NAME} --region=${AWS_REGION}eksctl get clusterNAMEREGIONmy-zhy-ekscn-northwest-14.3.Amazon ECR的使用
? 针对一个企业,很多image都是定制化的,而定制化的私有image管理,在AWS是如何操作的呢? Amazon ECR,让image的管理,变得更简单易用 。下面通过httpd的image,定制化并生成私有httpdok的image之后,并上传到Amazon ECR,作为步骤演示:
4.3.1. 首先创建一个Amazon ECR Repositories,选择并点击View push commands.
企业级容器云平台的落地与实施

文章插图
 
4.3.2. 根据”View puhs commands”步骤,将本地创建好的image,上传到Amazon ECR 。
企业级容器云平台的落地与实施

文章插图
 
具体命令步骤:
# aws ecr get-login-password --region cn-northwest-1 | docker login --username AWS --password-stdin <account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn查看本地镜像
# docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZEhttpdokv1df353399ffe47 seconds ago299MB为镜像打标签
# docker tag httpdok:latest <account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok:latest在查看本地Docker的images,可以看到已经出现一个新的,有ECR连接串的image
# docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZE<account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdoklatest9028c43733434 minutes ago299MBhttpdoklatest9028c43733434 minutes ago299MB推送image到ECR上
# docker push <account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok:latestThe push refers to repository [<account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok]回到aws控制台,已经可以看到上传的image
企业级容器云平台的落地与实施

文章插图
 
4.4.Amazon EKS实例演示
下面开始部署容器到Amazon EKS中,通过Nginx来演示如何部署image到Amazon EKS,并轮询访问.
4.4.1. 启动三个nginx pod 的 ReplicaSet
准备yaml文件
cat <<EOF > nginx-deployment.yamlapiVersion: Apps/v1kind: Deploymentmetadata:name: nginx-deploymentlabels:app: nginxspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80EOF执行以下命令,进行部署
kubectl apply -f nginx-deployment.yaml检查创建状态
kubectl get pods -o wide4.4.2. 创建LoadBalancer 服务
准备yaml文件
cat <<EOF > loadbalancer.yamlapiVersion: v1kind: Servicemetadata:name: nginx-servicespec:type: LoadBalancerselector:app: nginxports:- protocol: TCPport: 80targetPort: 80EOF执行以下命令,进行部署
kubectl create -f loadbalancer.yaml4.4.3. 检查创建状态
kubectl get serviceNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEnginx-serviceLoadBalancer10.100.212.244ae8e75d7e149044eb905b6bbff796e7e-629951941.cn-northwest-1.elb.amazonaws.com.cn80:31248/TCP7m53s4.4.4. 监测网页显示情况
curl -silent ae8e75d7e149044eb905b6bbff796e7e-629951941.cn-northwest-1.elb.amazonaws.com.cn | grep title<title>Welcome to nginx!</title>至此,我们已经开始使用EKS上的Nginx集群了 。但是为了建议Load balance的工作效果 。我们继续下面的小实验,可以更好的观察load balance的效果


推荐阅读