1.在EC2实例上安装AWS 命令行工具awscli,用于与AWS Console 交互,管理控制AWS资源:
1)此处安装最新版本的awscli
# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# unzip awscliv2.zip
# ./aws/install
# aws --version //安装完成,查看版本号
aws-cli/2.2.45 Python/3.8.8 Linux/3.10.0-1127.13.1.el7.x86_64 exe/x86_64.centos.7 prompt/off
2)使用 aws configure 命令配置aws访问凭证(如下:按命令行提示输入访问密钥id、密钥、区域、输出格式)
# aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
# aws help
3)使用awscli可以查看AWS现有的EKS集群
# aws eks list-clusters
{
"clusters": [
"eks-test"
]
}
2.安装eksctl,用于在 Amazon EKS 上建立和管理 Kubernetes
安装eksctl
# wget https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz
# tar -xf eksctl_Linux_amd64.tar.gz
# echo $PATH # $PATH:决定了shell将到哪些目录中寻找命令或程序
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# mv eksctl /usr/local/sbin/
或使用以下方式安装
# curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
# mv eksctl /usr/local/sbin/
查看eksctl版本,是否完成安装
# eksctl version
0.69.0
# eksctl --help
3.安装kubectl,用于处理kubenetes集群的命令行工具,很多操作系统程序包管理器中都提供了 kubectl二进制文件,因此想要安装kubectl
只需下载对应的二进制包,给它个执行权限,再把它丢到我们本地系统二进制命令文件夹里,就完成安装了
注:kubectl的版本号与Amazon EKS 集群的版本号相差不能大于1
1.下载kubectl二进制包文件:
# curl -o kubectl https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.20.4/2021-04-12/bin/linux/amd64/kubectl
2.添加执行权限:
# chmod +x kubectl
3.将二进制文件移到存放系统二进制命令目录下(使用命令echo $PATH可以看到目录)
# mv kubectl /usr/local/sbin/
4.查看是否安装成功(查看版本号)
# kubectl version --short --client
Client Version: v1.20.4-eks-6b7464 //安装完成:这里安装的是v1.20.4的版本
4.使用eksctl创建Amazon EKS 集群
1)创建集群
# cat cluster_v1.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
# eksctl create cluster --config-file=cluster_v1.yaml
metadata:
name: EKS-STG
version: "1.21"
region: cn-north-1
vpc:
cidr: 10.30.0.0/16
clusterEndpoints:
publicAccess: true
privateAccess: true
nodeGroups: []
2)创建节点组
# cat nodegroup_m5.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: EKS-STG
region: cn-north-1
version: "1.21"
managedNodeGroups:
- name: ng-1
instanceType: m5.large
minSize: 1
maxSize: 3
desiredCapacity: 2
volumeSize: 50
ssh:
allow: true
publicKeyName: eks-test-ssh
# eksctl create nodegroup --config-file=nodegroup_m5.yaml
5.生成 kubeconfig 配置文件
前面已经安装了kubectl,现在要生成配置文件kubeconfig使之能与eks集群交互
1.使用awscli命令行快速创建/更新kubeconfig:
# aws eks --region cn-north-1 update-kubeconfig --name EKS-STG
# kubectl get nodes
//完成以上步骤即可用kubectl来管理你创建的Amazon eks集群
6.以上已完成EKS集群的创建,默认只有创建集群的user对集群有权限(admin权限),想让其他用户访问,需要在集群中添加权限,如下:给用户xuexue.li 添加权限
$ kubectl edit cm aws-auth -n kube-system
apiVersion: v1
data:
mapRoles: |
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws-cn:iam::123456789:role/eksctl-EKS-STG-nodegroup-ng-1-NodeInstanceRole-11ABCYEFGRU
username: system:node:{{EC2PrivateDNSName}}
mapUsers: |
- userarn: arn:aws-cn:iam::123456789:user/xuexue.li
username: xuexue.li
groups:
- system:masters