首页 > 其他分享 >day39基于阿里云的全面云上业务 - 基于AWS的全面云上业务(12.1-12.2)

day39基于阿里云的全面云上业务 - 基于AWS的全面云上业务(12.1-12.2)

时间:2024-01-21 22:57:51浏览次数:32  
标签:eksctl node 基于 day39 -- cluster 云上 nodegroup 节点

12.1、基于阿里云的全面云上业务(两节)

容器服务 ACK控制台:https://cs.console.aliyun.com/?spm=5176.12818093_47.categories-n-products.dcsk.60eb16d0N97QLB#/k8s/cluster/list

容器服务Kubernetes版产品文档:https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/ack-cluster-overview

12.2、基于AWS的全面云上业务(两节)

一、什么是 Amazon EKS?

https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/what-is-eks.html

官方文档:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/create-cluster.html

工作台搜索:EKS(Elastic Kubernetes Service)

二、基于AWS 创建EKS

创建:

集群配置:

集群版本选择:

配置网络相关:

配置日志记录:

选择插件:

配置选定的插件设置:

确认&创建:

 集群配置

这样一个还没加入计算节点的 EKS 集群就创建完成了,下面开始配置node节点:

基础配置和node标签污点添加:

计算节点及扩展(node基础配置,缩放配置等):

子网&SSH:

eksctl命令方式创建

安装awscli:

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

配置授权:

这里使用了一台Amazon EC2来操作EKS集群,然后需要分配给这台EC2 操作EKS集群的权限:

1 通过IAM role 分配

2 通过 aws configure 配置ak、sk

$ vim ~/.aws/credentials #静态修改
$ vim ~/.aws/config #静态修改
两种方式都可以,建议使用IAM role的形式,附加到EC2上。

配置eksctl:

eksctl 是一个用于在EKS上创建和管理 Kubernetes 集群的简单命令行实用程序

$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
$ sudo mv /tmp/eksctl /usr/local/bin
测试安装是否成功:
$ eksctl version
注意:eksctl默认使用aws账号创建相关资源,敲每一个命令时,谨慎严行!!

创建集群步骤:

##创建集群命令行方式
$ eksctl create cluster \
--region ap-northeast-1 \
--name test-eks-zhdya \
--nodegroup-name eks-workers \
--node-type m6.large \
--nodes 2 \
--nodes-min 1 \
--nodes-max 3 \
--node-volume-size=50 \
--alb-ingress-access \
--ssh-access \
--node-private-networking \
--vpc-cidr 172.0.0.0/16

##yaml配置文件方式创建
$ eksctl create cluster -f cluster.yaml

##创建集群跳过创建节点组
$ eksctl create cluster --config-file=<path>|--name=<k8s-name> --without-nodegroup

##查看你的集群
$ eksctl get cluster
删除集群格式化,创建集群时所有资源一键清空!!(谨慎操作!)
$ eksctl delete cluster -f cluster.yaml
创建一个节点组:
##命令行方式创建
$ eksctl create nodegroup \
--cluster <my-cluster> \
--name <al-nodes> \
--node-type <t3.medium> \
--nodes <3> \
--nodes-min <1> \
--nodes-max <4> \
--ssh-access \
--ssh-public-key <my-key>

##yaml文件方式部署节点组(自动部署到集群中)
$ eksctl create nodegroup --config-file=<path>

##查看所有节点组
$ eksctl get nodegroup --cluster=<k8s-name>

##从节点中删除节点组
$ eksctl delete nodegroup --cluster=<k8s-name> --name=<nodegroup-name>

##缩放管理节点组(max~min之间)
$ eksctl scale nodegroup --cluster=<k8s-name> --nodes=3 <nodegroupname>

##缩放节点组并改变max\min大小
$ eksctl scale nodegroup --cluster=test-eks01-1-16 --nodes=4 --name=test-eks01-nodegroup-1-17 [ --nodes-min=2 ] [ --nodes-max=6 ]
实例yaml文件:
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: test-eks01-1-16
  region: ap-northeast-1
  version: "1.27"  # 指定版本,默认为最新。注意:全局参数,创建 nodegroup 时也会使用

vpc:  # 加入 vpc
  id: "vpc-0c5772731331faf1c"
  subnets:
    private:
      ap-northeast-1d:
        id: "subnet-09593b4fc19416371"
      ap-northeast-1a:
        id: "subnet-0e2ec95462826a769"
      ap-northeast-1c:
        id: "subnet-06d1ea445c2d75506"
  # 以下为注释掉的子网配置
  # ap-northeast-1c:
  #   id: "subnet-07b057c0481f60720"
  # ap-northeast-1d:
  #   id: "subnet-09ff2d8c908309b97"
  # ap-northeast-1d:
  #   id: "subnet-049ee3fe1eed8bf97"

clusterEndpoints:  # 公网和内网访问 master 节点
  publicAccess: true
  privateAccess: true

nodeGroups:
  - name: test-eks01-nodegroup-1-17-2
    privateNetworking: true  # node 节点只有内网地址,通过 NAT 网关上网
    instanceType: t3.medium
    minSize: 1
    maxSize: 3
    desiredCapacity: 1  # 默认数量
    kubeletExtraConfig:  # 节点压力驱逐配置
      kubeReserved:  # Kubernetes 组件预留配置
        cpu: "300m"
        memory: "300Mi"
        ephemeral-storage: "1Gi"
      kubeReservedCgroup: "/kube-reserved"
      systemReserved:  # 系统组件预留配置
        cpu: "300m"
        memory: "300Mi"
        ephemeral-storage: "1Gi"
      evictionHard:  # 硬驱逐条件
        memory.available: "200Mi"
        nodefs.available: "10%"
      featureGates:
        TaintBasedEvictions: true
        RotateKubeletServerCertificate: true  # 固定打开,或者不生效
    volumeSize: 50
    ssh:  # 导入默认公钥 (~/.ssh/id_rsa.pub)
      allow: true
    labels:
      role: k8s-worker  # 节点标签
    # taints:  # 污点
    #   feaster: "true:NoSchedule"
    tags:
      nodegroup-role: worker-test
    preBootstrapCommands:  # 节点创建后执行的命令
      - "echo 'this is node 1.17' >> /usr/local/testcmd.txt"
升级集群和node节点:

官方文档:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/launch-workers.html

  • 升级集群

    $ eksctl upgrade cluster --name <my-cluster> --approve

    或者点击web页面升级参考web部署方式升级

  • 升级节点组

    $ eksctl upgrade nodegroup --name=managed-ng-1 --cluster=<k8s-name> --kubernetes-version=1.27
    人为方式升级【思路】:
  1. 升级master节点

  2. 修改yaml的version字段

  3. 部署新的节点组

  4. 修改就调度组不可调度

  5. 修改pod的yaml差异和兼容性api-version等

  6. 驱逐旧调度上pod到新建节点组

  7. 删除旧节点组

1.升级master节点

$ eksctl upgrade cluster --name <my-cluster> --approve
2.修改yaml的version字段
$ cat new-nodegroup.yaml |grep version
version: "1.16" #指定版本 默认为最新
3.部署新的节点组
$ eksctl create nodegroup --config-file=<path>
4.修改旧节点不可调度
# 不可调度不影响当前pod
$ kubectl cordon <node-name>

# 取消不可调度
$ kubectl uncordon <node-name>
5.修改yaml的version字段

参考k8s官网更新日志和社区文档 yaml 格式,镜像,api-version

6.驱逐旧调度上pod到新建节点组

$ kubectl drain --ignore-daemonsets <node-name>
7.删除旧节点组
$ eksctl delete nodegroup --cluster=<k8s-name> --name=<nodegroup-name> --approve
8.集群插件升级
要更新kube-proxy,运行:
$ eksctl utils update-kube-proxy --cluster=<clusterName>

要更新aws-node,运行:
$ eksctl utils update-aws-node --cluster=<clusterName>

要更新coredns,运行:
$ eksctl utils update-coredns --cluster=<clusterName>


升级后,请务必运行 `kubectl get pods -n kube-system` 并检查所有插件 pod 是否处于就绪状态,看到如下内容:
NAME                       READY   STATUS     RESTARTS     AGE
aws-node-g5ghn             1/1     Running   0           2m
aws-node-zfc9s             1/1     Running   0           2m
coredns-7bcbfc4774-g6gg8   1/1     Running   0           1m
coredns-7bcbfc4774-hftng   1/1     Running   0           1m
kube-proxy-djkp7           1/1     Running   0           3m
kube-proxy-mpdsp           1/1     Running   0           3m

 

标签:eksctl,node,基于,day39,--,cluster,云上,nodegroup,节点
From: https://www.cnblogs.com/pythonlx/p/17977528

相关文章

  • m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发,测试结果如下:2.算法涉及理论知识概要在现代数字通信和存储系统中,错误检测和纠正(ErrorDetectionandCorrection,EDC)机制是至关重要的。Hamming码,以其发明者RichardHamming命名,是一种线性错误检测和纠正码,广泛应用于这些系......
  • Go语言核心36讲 47 | 基于HTTP协议的网络服务
    我们在上一篇文章中简单地讨论了网络编程和socket,并由此提及了Go语言标准库中的syscall代码包和net代码包。我还重点讲述了net.Dial函数和syscall.Socket函数的参数含义。前者间接地调用了后者,所以正确理解后者,会对用好前者有很大裨益。之后,我们把视线转移到了net.DialTimeout......
  • k8s之基于metallb实现LoadBalancer型Service
    一、实验说明1、实验目的基于metallb实现kubernetes的LoadBalancer型Service。2、环境说明VMwareWorkstation安装三台虚拟机,安装K8S集群,网络模式NAT模式。master11.0.1.131node0111.0.1.132node0211.0.1.133oot@master:/home/user#kubectlgetnodesNAMESTATU......
  • 基于SSM的双星小区物业管理系统的设计与实现
    传统办法管理双星小区物业信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装双星小区物业管理系统软件来发挥其高效地信息处理的作用,可以规范双星小区物业信息管理流程,让管理工作可以系统化和程序化,同......
  • 基于SSM的汽车租赁系统
    随着社会的发展,出行成为常态,也就造成汽车租赁市场的兴起。租赁汽车一般采用去汽车租赁公司。如果去汽车租赁公司租赁汽车,虽然质量和售后都有保证,但在选择汽车车型和配置方面需要大量的时间进行对比,对人的精力是非常大的考验。随着网络的快速发展,购物网站成为新的途径。汽车租赁系统......
  • 基于SSM的电动车上牌管理系统的设计与实现
    课题背景早在20世纪80年代,美国就已经开始发展电子商务行业,良好的经济,完备的技术和稳定的社会条件,为信息化管理行业的发展提供了一种很好的发展氛围。1999年,为了每一个需要的用户都实现上网,欧盟委员会制定了电子欧洲计划。相比于国外,我国信息化管理出现的比较晚,但是相关的技术人员......
  • 基于SSM的生鲜配送系统设计及实现
    互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对生鲜配送信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用生鲜配送系统可以有效管理,使信息管理能够更加......
  • 基于SSM的公务用车管理智慧云服务监管平台查询统计
    随着信息互联网购物的飞速发展,一般企业都去创建属于自己的管理系统。本文介绍了公务用车管理智慧云服务监管平台的开发全过程。通过分析企业对于公务用车管理智慧云服务监管平台的需求,创建了一个计算机管理公务用车管理智慧云服务监管平台的方案。文章介绍了公务用车管理智慧云服务......
  • 基于SSM的广告管理系统
    随着信息互联网购物的飞速发展,一般企业都去创建属于自己的管理系统。本文介绍了广告管理系统的开发全过程。通过分析企业对于广告管理系统的需求,创建了一个计算机管理广告管理系统的方案。文章介绍了广告管理系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计......
  • 基于html5的演唱会购票系统的设计与实现
    随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了基于html5的演唱会购票系统的设计与实现的开发全过程。通过分析企业对于基于html5的演唱会购票系统的设计与实现的需求,创建了一个计算机管理基于html5的演唱会购票系统的设计与实现的......