侧边栏壁纸
  • 累计撰写 208 篇文章
  • 累计创建 16 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

AWS-EKS的创建(控制台创建的方式)

Wake
2022-08-30 / 0 评论 / 5 点赞 / 674 阅读 / 1,308 字

前言:因为我们现在AWS使用方式与常规有一些差异,如下图所示:
image-1661860609532
我们是使用另外一个AWS账号通过各个环境ram-role的授权连接进入到各个环境的,所以uat的账号id并不是我们现在这个7727开头的id。因为EKS集群的连接会根据创建时的iam用户而创建最高管理权,所以一开始只能通过这个iam用户下的授权的实例才能使用kubectl正确的使用eks集群。否则会因为权限问题,无法控制eks集群。因此,在创建 Amazon EKS 集群之前,您必须使用以下 IAM 策略创建 IAM 角色:
1.创建好eks集群所需要的iam用户,并记录下用户arn:
image-1661860638847
image-1661860645416
2.配置集群 在控制台创建eks集群时,需要注意的是这个集群服务角色的选项,我们需要去手动创建出来这个集群服务角色
image-1661860662025
image-1661860670923
一般只需要第一个策略,把它添加进去,iam-role就可以出现了。

vpc子网的选择上,假设已经创建好了3个public子网,3个private子网的vpc网段。因为kuberneters集群不需要每个节点都分配一个IP地址,所以采用私有网段都通过NAT网关出去访问网络的方式,后面的node节点都会采用3个可用区3个private网段的方式。这里也选择private子网。
image-1661860691346
其他没什么需要特别注意的,等待集群创建完成。

3.设置节点组 因为Amazon EKS是一项托管服务。Amazon EKS预置和管理Kubernetes控制平面,也就是Master节点。 Master节点中的API server,Controller manager,Scheduler与ETCD等由我们维护,客户不需要也无法管理。 总体来说,Kubernetes 由两大组件构成: - 管理容器在群集上的启动时间和位置并监控容器状态的控制平面,由我们AWS托管。 - 运行容器的工作线程节点,由客户创建管理生命周期。所以我们就只需要管理好node节点就好了。

eks创建node-group会创建一个autoscaling组,后面扩展节点数量和更改实例类型是比较方便的。
image-1661860708245
这个节点iam角色也需要自己手动进行创建,需要的权限如下:
image-1661860723908
尽量不要选择启动模板来启动node-group
image-1661860740737
磁盘大小不能调整在node-group里面修改,后期应该会比较麻烦。所以还是尽量不要选择这种方式
image-1661860762704
开启对节点的ssh访问权限就可以在后期通过kubectl实例或者同一个vpc的公有子网中访问所有的节点机器进行操作查看。

设置完成后,node-group就会一会创建出来

设置实例名称的标签:
image-1661860784342
在node-group的auto scaling Groups里添加一下这个标签,创建出来的ec2实例机器就会按照这个值命名了。

4.使用绑定了创建了iam用户的实例机器,使用kubectl连接eks集群。 4-1.安装awscli (Linux x86 (64位))

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip 
sudo ./aws/install

4-2.使用aws configure 导入iam用户的access key 和eks的使用区域
image-1661860816603
4-3.使用aws sts get-caller-identity 验证ARN 是否正确
image-1661860829551
出现这个信息就是绑定成功了。

4-3.使用aws eks update-kubeconfig连接eks集群

aws eks update-kubeconfig -name
image-1661860846092
至此,eks集群就可以使用kubectl进行管理使用了。

5.给其他iam用户授权eks的管理权限,主要针对控制台对于node节点信息的查看和使用其他AWS iam用户使用aws eks update-kubeconfig 连接eks的权限。 未授权前,如果使用node-group的iam角色的权限,则只有基本的查看权限。
image-1661860864987
image-1661860876382
如上图所示。

授权方法如下:

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
  mapRoles: |
    - rolearn: <arn:aws:iam::111122223333:role/eksctl-my-cluster-nodegroup-standard-wo-NodeInstanceRole-1WP3NUE3O6UCF>
      username: <system:node:{{EC2PrivateDNSName}}>
      groups:
        - <system:bootstrappers>
        - <system:nodes>
  mapUsers: | #在这里添加需要添加需要授权的iam用户
    - userarn: <arn:aws:iam::111122223333:user/admin>
      username: <admin>
      groups:
        - <system:masters>
    - userarn: <arn:aws:iam::111122223333:user/ops-user>
      username: <ops-user>
      groups:
        - <system:masters>

范例如下:
image-1661860932105
因为我这个Wake用户已经拥有管理权限,并且不会显示到这个配置文件中,所以添加完所需要的iam用户的信息后,使用这个用户登陆控制台就跟我这个Wake的权限一样。

更多权限的设置和iam用户分配可以参考这篇文章: https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html

5

评论区