摘要:本教程适用范围本教程适用范围在上使用服务部署,并通过访问集群计算节点采用托管,并使用启动模板。到此,完成集群的搭建,部署,部署,并实现了外网访问。
# install kubectlwget https://dl.k8s.io/release/v1.22.0/bin/linux/amd64/kubectlchmod 755 kubectlmv kubectl /usr/bin# install awsclipip3 install awscli# install eksctlwget https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gztar -xvf eksctl_Linux_amd64.tar.gzchmod 755 eksctlmv eksctl /usr/bin
输入如下表示安装完成
aws eks create-cluster / --region us-west-2 / --name zhenglisai / --kubernetes-version 1.21 / --role-arn arn:aws:iam::你的账号ID:role/eks-cluster / --resources-vpc-config subnetIds=subnet-cf36ca92,subnet-75866b0d,subnet-19ef9b32,securityGroupIds=sg-0daa7eabdc1f845fd
从控制台可以看到集群创建中
查看集群状态
在控制台EC2中创建启动模板,使用镜像AMI:ami-0cb182e3037115aa0,根据自己需要选择实例类型,安全组,服务器密钥对,启动模板中不要设置网络接口和IAM 实例配置文件,最重要的一步是在启动模板最后的用户数据中填写:
脚本后参数为EKS集群名
aws eks create-nodegroup / --cluster-name zhenglisai / --nodegroup-name zls-node / --scaling-config minSize=1,maxSize=3,desiredSize=2 / --subnets subnet-cf36ca92 subnet-75866b0d subnet-19ef9b32 / --node-role arn:aws:iam::你的账号ID:role/eks-demo / --launch-template version=4,id=lt-020949e5e604df89c
# --name 后为集群名aws eks --region us-west-2 update-kubeconfig --name zhenglisai
配置完成后,访问EKS集群
表示完成配置,可以访问集群了。
可以看到,有两个pod没有起来,我们看一下为什么没有起来
执行
kubectl get pods coredns-85d5b4454c-rkccb --namespace kube-system --output yaml
看输出是没有可用的计算节点,说明我们上一步创建的计算节点还没运行起来,查看可用节点,确实没有
等大约两分钟以后,再次执行,可以看到实例已经注册到集群了
再次查看pod状态,都已经运行起来了。
这个东西主要用于集群的弹性扩容指标和dashboard指标,不是用于监控资源!
执行部署
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
输出
验证部署是否成功
执行
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
创建一个名为eks-admin.yaml的文件,内容为
apiVersion: v1kind: ServiceAccountmetadata: name: eks-admin namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata: name: eks-adminroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: eks-admin namespace: kube-system
执行此文件
kubectl apply -f eks-admin.yaml
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk {print $1})
到此为止,已完成集群的搭建和Dashboard的部署,但是此时只能在集群内部访问Dashboard,无法通过外网访问。下一步将Dashboard接口暴露给ALB
wget https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.2.0/docs/install/iam_policy.json
aws iam create-policy / --policy-name AWSLoadBalancerControllerIAMPolicy / --policy-document file://iam_policy.json
eksctl utils associate-iam-oidc-provider --cluster zhenglisai --approve
eksctl create iamserviceaccount / --cluster=zhenglisai / --namespace=kube-system / --name=aws-load-balancer-controller / --attach-policy-arn=arn:aws:iam::你的账号ID:policy/AWSLoadBalancerControllerIAMPolicy / --override-existing-serviceaccounts / --approve
kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"helm repo add eks https://aws.github.io/eks-chartshelm repo updatehelm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller / --set clusterName=zhenglisai / --set serviceAccount.create=false / --set serviceAccount.name=aws-load-balancer-controller / -n kube-system
验证安装是否完成
创建部署文件,dashboard-ingress.yaml,内容如下(需要修改汉字部分内容):
---apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata: namespace: kubernetes-dashboard name: ingress-dashboard annotations: alb.ingress.kubernetes.io/load-balancer-name: zhenglisai alb.ingress.kubernetes.io/backend-protocol: HTTPS kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip alb.ingress.kubernetes.io/listen-ports: [{"HTTPS":443}] alb.ingress.kubernetes.io/certificate-arn: 你证书的ARN,在ACM中查看spec: rules: - host: 你的域名 http: paths: - path: /* backend: serviceName: kubernetes-dashboard servicePort: 443
执行文件,创建ingress
kubectl apply -f dashboard-ingress.yaml
使用https协议访问域名
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/125371.html
摘要:正在美国拉斯维加斯举行的大会上,亚马逊新发布的一系列计算及存储相关的功能中,最轰动容器领域,无非是一种无需管理服务器即可运行容器的服务,以及,一个完全托管的服务。的发布,意味着国际范围内三大最主要的云服务商和,已全部提供托管的服务。 正在美国拉斯维加斯举行的AWS re:Invent 2017大会上,亚马逊新发布的一系列计算及存储相关的功能中,最轰动容器领域,无非是AWS Fargat...
摘要:正在美国拉斯维加斯举行的大会上,亚马逊新发布的一系列计算及存储相关的功能中,最轰动容器领域,无非是一种无需管理服务器即可运行容器的服务,以及,一个完全托管的服务。的发布,意味着国际范围内三大最主要的云服务商和,已全部提供托管的服务。 正在美国拉斯维加斯举行的AWS re:Invent 2017大会上,亚马逊新发布的一系列计算及存储相关的功能中,最轰动容器领域,无非是AWS Fargat...
摘要:现在,越来越多的开发人员不再使用传统的应用程序服务器,而是开始使用作为分布式应用程序平台开发人员使用作为后端数据库。而我们已注意到,将诸如之类的轻量级安装程序嵌入到分布式应用程序中,满足了很多来自用户的兴趣与需求。 作为Rancher 2.0的重要组件,Rancher Kubernetes Engine(RKE)现已正式全面发布!这是Rancher Labs推出的新的开源项目,一个极致...
摘要:现在,越来越多的开发人员不再使用传统的应用程序服务器,而是开始使用作为分布式应用程序平台开发人员使用作为后端数据库。而我们已注意到,将诸如之类的轻量级安装程序嵌入到分布式应用程序中,满足了很多来自用户的兴趣与需求。 作为Rancher 2.0的重要组件,Rancher Kubernetes Engine(RKE)现已正式全面发布!这是Rancher Labs推出的新的开源项目,一个极致...
摘要:但是可惜的是,当中的块存储并不支持这样的方式。都是监听指定资源,然后分别对和和三种事件,做出处理。部署具体部署的如下注意,加入集群中不存在角色,可以自行进行授权。例如创建成果以后,去的查看如下 前言 在使用aws的托管k8s--eks过程中,避免不了使用aws的LB和块存储。AWS公有云所有的资源都可以自定义tags,这样的好处就是可以根据tag具体含义来对资源进行不同维度的审计和统计...
阅读 681·2023-04-25 19:43
阅读 3853·2021-11-30 14:52
阅读 3726·2021-11-30 14:52
阅读 3793·2021-11-29 11:00
阅读 3745·2021-11-29 11:00
阅读 3811·2021-11-29 11:00
阅读 3528·2021-11-29 11:00
阅读 6007·2021-11-29 11:00