5站合一 网站建设,免费成品网站那里好,中职网站建设与维护考试题,想建立自己的网站怎么建立文章目录 一、准备工作二、部署 KubeSphere三、访问 KubeSphere 控制台四、安装Amazon EBS CSI 驱动程序4.1 集群IAM角色建立并赋予权限4.2 安装 Helm Kubernetes 包管理器4.3 安装Amazon EBS CSI 驱动程序 五、常见问题六、参考链接 一、准备工作
Kubernetes 版本必须为… 文章目录 一、准备工作二、部署 KubeSphere三、访问 KubeSphere 控制台四、安装Amazon EBS CSI 驱动程序4.1 集群IAM角色建立并赋予权限4.2 安装 Helm Kubernetes 包管理器4.3 安装Amazon EBS CSI 驱动程序 五、常见问题六、参考链接 一、准备工作
Kubernetes 版本必须为v1.20.x、v1.21.x、v1.22.x、v1.23.x、* v1.24.x、* v1.25.x 和 * v1.26.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此如需使用边缘节点推荐安装 v1.23.x。确保机器满足最低硬件要求CPU 1 核内存 2 GB。在安装之前需要配置 Kubernetes 集群中的默认存储类型。
前提已经通过eksctl命令工具安装部署完成kubernetes集群。详细安装操作过程请参考【Amazon】基于Amazon提供的托管式EKS通过eksctl命令部署Kubernetes集群-CSDN博客
二、部署 KubeSphere
确保机器满足安装的前提条件之后可以按照以下步骤安装 KubeSphere。
执行以下命令开始安装
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yamlkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/cluster-configuration.yaml检查安装日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app in (ks-install, ks-installer) -o jsonpath{.items[0].metadata.name}) -f使用 kubectl get pod --all-namespaces 查看所有 Pod 是否在 KubeSphere 的相关命名空间中正常运行。如果是请通过以下命令检查控制台的端口默认为 30880
kubectl get svc/ks-console -n kubesphere-system确保在安全组中打开了端口 30880并通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P88w0rd) 访问 Web 控制台。 登录控制台后您可以在系统组件中检查不同组件的状态。如果要使用相关服务可能需要等待某些组件启动并运行。 执行完成后的结果如下图所示 三、访问 KubeSphere 控制台
现在已经安装了 KubeSphere可以按照以下步骤访问 KubeSphere 的 Web 控制台。
查看 ks-console 服务。
kubectl get svc -n kubesphere-system输出结果
[rootawseksec2 ~]# kubectl get svc -n kubesphere-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ks-apiserver ClusterIP 10.100.154.120 none 80/TCP 14m
ks-console NodePort 10.100.248.20 none 80:30880/TCP 14m
ks-controller-manager ClusterIP 10.100.30.150 none 443/TCP 14m执行kubectl edit ks-console将 service 类型NodePort 更改为LoadBalancer完成后保存文件。
# kubectl edit svc ks-console -n kubesphere-system
......
spec:clusterIP: 10.100.160.240externalTrafficPolicy: Clusterports:- name: nginxnodePort: 30880port: 80protocol: TCPtargetPort: 8000selector:app: ks-consoletier: frontendversion: v3.0.0sessionAffinity: Nonetype: LoadBalancer输出结果
[rootawseksec2 ~]# kubectl edit svc ks-console -n kubesphere-system
service/ks-console edited
[rootawseksec2 ~]# kubectl get svc -n kubesphere-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ks-apiserver ClusterIP 10.100.154.120 none 80/TCP 15m
ks-console LoadBalancer 10.100.248.20 a32bf8937c7f44f9d9b1293dbe399375-383389967.ap-northeast-3.elb.amazonaws.com 80:30880/TCP 15m
ks-controller-manager ClusterIP 10.100.30.150 none 443/TCP 15m使用 EKS 生成的 external-ip 访问 KubeSphere 的 Web 控制台。 使用默认帐户和密码admin/P88w0rd登录控制台。 四、安装Amazon EBS CSI 驱动程序
参考链接Amazon EBS CSI 驱动程序 - Amazon EKS
建立集群 IAM 角色赋予集群 IAM 角色安装 Amazon EBS CSI 驱动程序验证Amazon EBS CSI 驱动程序
4.1 集群IAM角色建立并赋予权限
# 建立集群IAM角色
$ curl -o eks-iam-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-ebs-csi-driver/release-1.3/docs/example-iam-policy.json$ aws iam create-policy \--policy-name AmazonEKS_EBS_CSI_Driver_Policy \--policy-document file://eks-iam-policy.json$ aws iam create-policy \--policy-name AmazonEKS_EBS_CSI_Driver_Policy \--policy-document file://eks-iam-policy.json
{Policy: {PolicyName: AmazonEKS_EBS_CSI_Driver_Policy,PolicyId: ANPAX33KP53SETUUPEAVR,Arn: arn:aws:iam::540852350692:policy/AmazonEKS_EBS_CSI_Driver_Policy,Path: /,DefaultVersionId: v1,AttachmentCount: 0,PermissionsBoundaryUsageCount: 0,IsAttachable: true,CreateDate: 2023-11-19T08:51:5900:00,UpdateDate: 2023-11-19T08:51:5900:00}
}# 赋予集群 IAM 角色
$ eksctl create iamserviceaccount \--name ebs-csi-controller-sa \--regionap-northeast-3 \--namespace kube-system \--cluster xybeks-cluster \--attach-policy-arn arn:aws:iam::540852350692:policy/AmazonEKS_EBS_CSI_Driver_Policy \--approve \--override-existing-serviceaccounts# 验证角色 ARN
$ aws cloudformation describe-stacks \--stack-name eksctl-xybeks-cluster-addon-iamserviceaccount-kube-system-ebs-csi-controller-sa \--queryStacks[].Outputs[?OutputKeyRole1].OutputValue \--output text4.2 安装 Helm Kubernetes 包管理器
# Helm 是查找、分享和使用软件构建kubernetes的最优方式之一。
$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 get_helm.sh$ chmod 700 get_helm.sh$ ./get_helm.sh$ helm version$ helm help4.3 安装Amazon EBS CSI 驱动程序
# 安装Amazon EBS CSI 驱动程序
$ helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
$ helm repo update--set image.repository602401143452.dkr.ecr.ap-northeast-3.amazonaws.com/eks/aws-ebs-csi-driver \--set image.repository602401143452.dkr.ecr.us-east-2.amazonaws.com/eks/aws-ebs-csi-driver \# 从镜像区域安装驱动
# https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/ass-ons-images.html
$ helm upgrade -install aws-ebs-csi-driver aws-ebs-csi-driver/aws-ebs-csi-driver \--namespace kube-system \--set image.repository602401143452.dkr.ecr.ap-northeast-3.amazonaws.com/eks/aws-ebs-csi-driver \--set controller.serviceAccount.createfalse \--set controller.serviceAccount.nameebs-csi-controller-sa$ kubectl get pod -n kube-system -l app.kubernetes.io/nameaws-ebs-csi-driver,app.kubernetes.io/instanceaws-ebs-csi-driver---------------
kubectl delete pod -n kube-system -l app.kubernetes.io/nameaws-ebs-csi-driver,app.kubernetes.io/instanceaws-ebs-csi-driver
---------------# 验证Amazon EBS CSI 驱动程序
$ kubectl get storageclass# Verify dricer is running:
$ kubectl get pods -n kube-system [rootawseksec2 ~]# kubectl get pod -n kube-system -l app.kubernetes.io/nameaws-ebs-csi-driver,app.kubernetes.io/instanceaws-ebs-csi-driver
NAME READY STATUS RESTARTS AGE
ebs-csi-controller-64b49d7f84-6g6rt 6/6 Running 0 35s
ebs-csi-controller-64b49d7f84-l5cgp 6/6 Running 0 34s
ebs-csi-node-6w5vw 3/3 Running 0 35s
ebs-csi-node-bw9p8 3/3 Running 0 34s
[rootawseksec2 ~]# kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 99m
[rootawseksec2 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
aws-node-cvmjf 1/1 Running 0 92m
aws-node-rs98c 1/1 Running 0 92m
coredns-847b5d4fc5-csb75 1/1 Running 0 99m
coredns-847b5d4fc5-j47xr 1/1 Running 0 99m
ebs-csi-controller-64b49d7f84-6g6rt 6/6 Running 0 113s
ebs-csi-controller-64b49d7f84-l5cgp 6/6 Running 0 112s
ebs-csi-node-6w5vw 3/3 Running 0 113s
ebs-csi-node-bw9p8 3/3 Running 0 112s
kube-proxy-7m9ll 1/1 Running 0 92m
kube-proxy-lvmvk 1/1 Running 0 92m
snapshot-controller-0 1/1 Running 0 48m五、常见问题 问题在EKS集群中部署完KubeSphere容器平台出现如下显示结果。是因为没有安装Amazon EBS CSI驱动程序造成的。 ✅解决安装Amazon EBS CSI驱动程序。参考4.3安装Amazon EBS CSI驱动程序。 问题集群 OIDC 发布者 URL 必须存在 IAM OIDC 提供商。 Error: unable to create iamserviceaccount(s) without IAM OIDC provider enabled ✅解决添加IAM OIDC 提供商
[rootawseksec2 ~]# cluster_namexybeks-cluster
[rootawseksec2 ~]# oidc_id$(aws eks describe-cluster --name $cluster_name --query cluster.identity.oidc.issuer --output text | cut -d / -f 5)
[rootawseksec2 ~]# echo $oidc_id
CB4443455AF63EE8A9144875D7D4BD0C
[rootawseksec2 ~]# aws iam list-open-id-connect-providers | grep $oidc_id | cut -d / -f4
[rootawseksec2 ~]# eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
2023-11-19 08:55:48 [ℹ] will create IAM Open ID Connect provider for cluster xybeks-cluster in ap-northeast-3
2023-11-19 08:55:48 [✔] created IAM Open ID Connect provider for cluster xybeks-cluster in ap-northeast-3参考链接https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/enable-iam-roles-for-service-accounts.html 六、参考链接
Helm
Artifact Hub 在 Kubernetes 上最小化安装 KubeSphere 在 AWS EKS 上部署 KubeSphere
Artifact Hub 在 Kubernetes 上最小化安装 KubeSphere 在 AWS EKS 上部署 KubeSphere
将 Helm 与 Amazon EKS 结合使用 - Amazon EKS