当前位置: 首页 > news >正文

【EKS】基于Amazon EKS搭建kubernetes集群

文章目录

  • 前言 | 亚马逊云科技 re:Invent前沿资讯
  • 一、介绍篇🎨
    • 什么是AWS 云计算
    • 什么是Amazon EKS
  • 二、部署篇🔨
    • 1、创建集群VPC
    • 2、创建集群子网
    • 3、创建IGW网关
    • 4、创建路由表与子网绑定
    • 5、EKS集群创建
    • 6、创建kubeconfig配置文件
    • 7、添加计算节点组
    • 8、查看EKS各个节点运行状态
    • 9、删除集群
    • 10、角色创建(附)
      • 10.1 集群服务角色创建
      • 10.2 集群节点组创建
  • 三、参考链接🔗

前言 | 亚马逊云科技 re:Invent前沿资讯

凌云驭势,重塑未来,与开发者一起构建未来

亚马逊云科技 re:Invent 全球大会是全球云计算引领者——亚马逊云科技(Amazon Web Services )举办的年度盛会,首届大会始于2012年。


在Amazon.com 副总裁兼首席技术官 Dr. Werner Vogels 主题演讲中, Dr. Werner Vogels通过订单流程操作的例子引入他的演讲,阐述了同步性与异步性的关系。讲述了松散耦合系统带来的好处。突出说明了事件驱动型架构的发展趋势和重要意义。以及谈到了数字世界的基础是操作系统,设备与操作系统之间的交互式基于终端的事件驱动系统。所以,操作系统底层和进程进度式完全异步的。等等。
image-20221215124023702

🔼 图 Amazon.com副总裁兼首席技术官 Dr. Werner Vogels 主题演讲

在亚马逊云科技首席执行官 Adam Selipsky 主题演讲中,我知道了亚马逊云科技reLInvent大会已经成功举办过11次。Adam Selipsky在演讲中,讲述了创新信息共享、创新产品共享正在推动着科技技术高速发展,资本市场的发展带来了云计算的发展,企业上云用云的成本大幅度降低,效能产能明显提升。同时也谈到了,业务决策流程的应用中心是几乎每个组织数字化转型的基石,但处理数据很棘手。其中,数据和数字化在能源转型中起着关键作用,以及亚马逊云科技数据的安全性是如何保证客户的数据安全的(使用正确的工具确保它们安全),推出了Container runtime threat detection for GuardDuty的产品。还谈到了亚马逊云科技的第三代处理器Graviton3基于Graviton3的实例比Graviton2快25%并且与同类的EC2实例相比可减少能源使用高达60%。以及高性能计算HPC、connect三项新功能等等相关技术内容。

“云正在消除限制,重新构想业务挑战。” —— Adam Selipsky

image-20221215124334474

🔼 图 亚马逊云科技首席执行官 Adam Selipsky 主题演讲中

接下来,笔者将利用Amazon Elastic Kubernetes Service (Amazon EKS)的一项完全托管kubernetes服务,从产品介绍到安装部署kubernetes集群,进行详细演示说明。

一、介绍篇🎨

什么是AWS 云计算

Amazon Web Services (AWS) 是全球最全面、应用最广泛的云平台,从全球数据中心提供超过 200 项功能齐全的服务。数百万客户(包括增长最快速的初创公司、最大型企业和主要的政府机构)都在使用 AWS 来降低成本、提高敏捷性并加速创新。

image-20221215122710862

🔼 图 AWS 区域的全球网络

什么是Amazon EKS

Amazon Elastic Kubernetes Service (Amazon EKS)是一项完全托管的 Kubernetes 服务。Intel、Snap、Intuit、GoDaddy 和 Autodesk 等客户均依赖 EKS 运行其最敏感的任务关键型应用程序,因为它具有安全性、可靠性和可扩展性。

image-20221214221628916

二、部署篇🔨

基于EKS部署 Kubernetes 集群

Amazon EKS 和 Amazon EKS Distro 现在支持 Kubernetes 1.24 版本。本实验将使用 Kubernetes 1.23 版本进行部署。

1、创建集群VPC

VPC介绍:通过 Amazon Virtual Private Cloud (Amazon VPC),可以在已定义的虚拟网络中启动 AWS 资源。这个虚拟网络与在数据中心运行的传统网络极其相似,并具有能够使用 AWS 的可扩展基础设施的优势。

1.1 切换至VPC控制面板,点击“创建VPC”。

image-20221214214513941

1.2 VPC设置。选择仅VPC,设置Name标签为k8s-vpc,IPv4 CIDR为172.19.0.0/24

image-20221214215157998

1.3 VPC创建完成。结果如下图所示。

image-20221214215246283

2、创建集群子网

子网介绍:子网是 VPC 中的 IP 地址范围。在创建 VPC 之后,可以在每个可用区中添加一个或多个子网。

2.1 创建子网。选择“子网”,点击“子网创建”。

image-20221215101309195

2.2 子网设置。选择刚刚创建好的VPC,设置三个子网。如下图所示。子网网段分别设置如下:

172.19.1.0/24
172.19.2.0/24
172.19.3.0/24

image-20221214215903434

2.3 创建三个子网完成。如图所示。

image-20221214220012982

3、创建IGW网关

IGW网关介绍:互联网网关是一种横向扩展、支持冗余且高度可用的 VPC 组件,可实现 VPC 与互联网之间的通信。

要使用互联网网关,将其附加到VPC 并在适用于互联网可路由 IPv4 或 IPv6 流量的子网路由表中将其指定为目标。互联网网关为已经分配了公有 IPv4 地址的实例执行网络地址转换(NAT)。

3.1 创建互联网网关。点击"创建互联网网关"。

image-20221214220540914

3.2 互联网网关设置。设置Name标签为“k8s-igw”,点击“创建互联网网关”。

image-20221214220506766

3.3 将IGW附加到VPC。

image-20221214220606536

3.4 选择可用的VPC,点击“连接互联网网关”。

image-20221214220642790

3.5 互联网网关附加VPC成功。

image-20221214220726317
image-20221214220710828

4、创建路由表与子网绑定

路由表介绍:路由表包含一组称为路由的规则,用于确定来自子网或网关的网络流量定向到何处。

4.1 创建路由表。选择“路由表”,点击“创建路由表”。

image-20221214220821184

4.2 路由表设置。填写路由表名称“k8s-gw”,选择要用于此路由表的VPC。

image-20221214220929907

4.3 创建路由表成功后,选择“路由”,点击“编辑路由”。

image-20221214221040513

4.4 编辑路由(仅测试),点击“保存更改”。

image-20221214221144594

4.5 子网关联。

在路由表选项栏中,选择刚刚创建的路由表,选择“子网关联”,点击“编辑子网关联”。

image-20221214221312938

4.6 关联以下三个可用子网。点击”保存关联“。

image-20221214221400524

4.7 子网关联成功。

image-20221214221501984
至此,网络部分设置完成,开始部署EKS。

5、EKS集群创建

5.1 搜索框搜索“EKS”。

image-20221214221611943

5.2 点击 “添加集群” —>“创建”。

image-20221214221628916

5.3 第1步:配置集群

注意:集群服务角色需要提前创建好。也可以现在去创建,点击刷新即可显示出来。

集群服务角色创建请参考:角色创建(附)一小节

image-20221214223711511

5.4 第2步:指定联网。

image-20221214224102523

5.5 第3步:配置日志记录(保持默认,禁用)

image-20221214224459655

5.6 第4步:选择插件。默认即可。

image-20221214224526506

5.7 第5步:配置选定的插件设置。

image-20221214224607676

5.8 第6步:查看和创建。确认信息无误后,点击“创建”。

image-20221214224731729

5.9 等待集群创建完成。状态显示“正在创建”,需要等待一会,预计10分钟。

image-20221214224901967

5.10 集群创建完成,状态显示“活跃”。

image-20221214230622859

6、创建kubeconfig配置文件

[cloudshell-user@ip-10-6-6-158 ~]$ aws --version
aws-cli/2.9.5 Python/3.9.11 Linux/4.14.296-222.539.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/offaws eks --region ap-northeast-1 update-kubeconfig --name xybdiy-k8s

image-20221214232513901

7、添加计算节点组

点击“添加节点组”。

image-20221214232959377

第1步:配置节点组。

节点组是向Amazon EKS集群提供计算容量的一组EC2实例。可以向集群添加多个节点组。

注意:节点组角色需要提前创建好。也可以现在去创建,点击刷新即可显示出来。

节点组角色创建请参考:角色创建(附)一小节

image-20221214233231050

第2步:设置计算和扩展配置。

image-20221214233605798

第3步:指定联网。

image-20221214233715846

第4步:查看和创建。

image-20221214233744891

等待k8s-xybdiy-nodegroup节点组创建完成。

image-20221214233825419

节点创建完成,状态显示“活动”。

image-20221214235150525

进入xybdiy-k8s集群,点击“计算”,查看计算节点已就绪

image-20221214235332715

点击其中一个计算节点,查看详细信息。如下图所示。

image-20221215000104654

xybdiy-k8s集群概览详细信息。

image-20221215000740452

k8s-xybdiy集群资源节点信息查看。

image-20221215000531340

k8s-xybdiy集群联网信息查看。

image-20221215000643983

k8s-xybdiy集群插件信息查询。

image-20221215000619195

xybdiy-k8s集群

image-20221215000852815
至此,基于Amazon EKS集群搭建的xybdiy-k8s集群部署完成。

8、查看EKS各个节点运行状态

开启AWS CloudShell查看EKS各个节点运行状态。

[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get nodes
NAME                                               STATUS   ROLES    AGE   VERSION
ip-172-31-0-88.ap-northeast-1.compute.internal     Ready    <none>   22m   v1.23.13-eks-fb459a0
ip-172-31-24-208.ap-northeast-1.compute.internal   Ready    <none>   22m   v1.23.13-eks-fb459a0
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get pods
No resources found in default namespace.
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get pod -n kube-system
NAME                       READY   STATUS    RESTARTS   AGE
aws-node-877nw             1/1     Running   0          22m
aws-node-mfvvx             1/1     Running   0          22m
coredns-69cfddc4b4-dtf8z   1/1     Running   0          67m
coredns-69cfddc4b4-glks2   1/1     Running   0          67m
kube-proxy-7nnks           1/1     Running   0          22m
kube-proxy-fbcfc           1/1     Running   0          22m
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE                         ERROR
etcd-1               Healthy   {"health":"true","reason":""}   
controller-manager   Healthy   ok                              
etcd-0               Healthy   {"health":"true","reason":""}   
scheduler            Healthy   ok                              
etcd-2               Healthy   {"health":"true","reason":""}   
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl version --short
Client Version: v1.23.7-eks-4721010
Server Version: v1.23.13-eks-fb459a0
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get svc -n kube-system
NAME       TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)         AGE
kube-dns   ClusterIP   10.100.0.10   <none>        53/UDP,53/TCP   68m

image-20221215000329846

9、删除集群

9.1 首先,删除节点组。

image-20221215001109587

9.2 删除xybdiy-k8s集群。

image-20221215000926117

10、角色创建(附)

在 IAM 控制台中创建 Amazon EKS 集群角色

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。
  2. 选择 Roles,然后选择 Create role
  3. Trusted entity type(受信任的实体类型)下,选择 AWS service(AWS 服务)。
  4. Use cases for other AWS 服务(其他 AWS 服务 的使用案例)下拉列表中,选择 EKS
  5. 为使用案例选择 EKS - Cluster(EKS - 集群),然后选择 Next(下一步)。
  6. Add permissions(添加权限)选项卡上,选择 Next(下一步)。
  7. 对于 Role name(角色名称),请为角色输入唯一名称,例如 eksClusterRole
  8. 对于 Description(说明),请输入描述性文本,例如 Amazon EKS - Cluster role
  9. 选择 Create role(创建角色)。

参考链接:Amazon EKS 集群 IAM 角色 - Amazon EKS

10.1 集群服务角色创建

点击“创建角色”。

image-20221214222128971

添加权限。如图所示。

image-20221214222427376

添加权限策略。

image-20221214222529837

命令、查看和创建。

image-20221214222708803

点击“创建集群”。

image-20221214222726119

创建角色完成。

image-20221214222732706

10.2 集群节点组创建

选择“EC2”。

image-20221214222938634

添加权限策略。如下图所示。

image-20221214223345654

集群节点组角色创建完成。

image-20221214223604169

三、参考链接🔗

🔴Amazon EKS Kubernetes托管_kubernetes集群管理服务-AWS云服务

🟡Amazon Elastic Kubernetes Service Documentation

🟢什么是 Amazon EKS? - Amazon EKS

🔵2022亚马逊云科技re:Invent全球大会 - 官方网站

🟣Monitoring using Prometheus and Grafana :: Amazon EKS Workshop

🟠自主管理的容器 – Amazon ECS Anywhere – Amazon Web Services

🟤Amazon Elastic Kubernetes Service 文档

相关文章:

【EKS】基于Amazon EKS搭建kubernetes集群

文章目录 前言 | 亚马逊云科技 re:Invent前沿资讯一、介绍篇&#x1f3a8;什么是AWS 云计算什么是Amazon EKS 二、部署篇&#x1f528;1、创建集群VPC2、创建集群子网3、创建IGW网关4、创建路由表与子网绑定5、EKS集群创建6、创建kubeconfig配置文件7、添加计算节点组8、查看EK…...

Tomcat安装与启动和配置

目录 Tomcat 简介 Tomcat 安装 Tomcat 启动和配置 文件夹作用 启动&#xff0c;关闭Tomcat&#xff1b; 常见问题 配置 环境变量 IDEA中配置Tomcat Tomcat 简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在…...

ruoyi-vue版本(十八)创建自己的项目,使用若依里面的技术,多数据源的实现

目录 1 创建自己的项目2 连接MySQL数据库(多数据源)2.1 若依实现多数据源2.1.1 主要思想2.2 第三方的依赖的实现1 创建自己的项目 1 创建一个空文件夹 2 idea 里面创建项目...

C++-stack题型->最小栈,栈的压入与弹出,逆波兰表达式

目录 最小栈 栈的压入与弹出 逆波兰表达式 最小栈 155. 最小栈 - 力扣&#xff08;Leetcode&#xff09; 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void …...

【计算机网络实验】BGP和OSPF协议仿真实验

实验内容  BGP和OSPF协议仿真实验 实验目的 &#xff08;1&#xff09;学习BGP协议的配置方法&#xff1b; &#xff08;2&#xff09;验证BGP协议的工作原理&#xff1b; &#xff08;3&#xff09;掌握网络自治系统的划分方法&#xff1b; &#xff08;4&#xff09;验证…...

提升日期处理效率:day.js 实战经验分享

theme: smartblue 本文简介 点赞 关注 收藏 学会了 本文主要介绍我在工作中使用 day.js 较多的方法。本文并不能代替 day.js 官方文档&#xff0c;日常工作中该查文档的还是要查文档。本文是写给刚接触 day.js 的工友&#xff0c;让这部分工友能更顺利上手 day.js。本文不涉…...

mysql中的count(1)、count(*)、count(id)哪个更快?

今天和大家聊一下mysql中的count()方法 我们日常开发中&#xff0c;经常会用到count()命令&#xff0c;有的人用count(*)&#xff0c;有的人用count(1)&#xff0c;还有的人用count(id)&#xff0c;那么这几种写法都有什么区别呢&#xff1f;哪种方法效率更高呢&#xff1f;今…...

cf1750E Bracket Cost

前言&#xff1a; 好久没训练了,来做道计数题找找感觉。**期末毁我青春 大意&#xff1a; 定义对于一个括号串 s的值&#xff0c;为通过最小次数以下操作使 s 实现括号匹配的操作次数。 选择一个子串&#xff0c;循环右移一位。在任意一个位置插入一个任意括号。 求一个括…...

Vue+springboot医院住院挂号登记收费系统7ui9s

医院信息管理系统的开发过程中&#xff0c;采用B / S架构&#xff0c;主要使用java语言进行开发&#xff0c;结合最新流行的springboot框架。使用Mysql数据库和idea开发环境。该医院信息管理系统包括用户、医生和管理员。其主要功能包括用户管理、医生管理、医生信息管理、预约…...

大前端之Koa2学习

Koa2框架介绍 Koa2是一个基于Node.js的Web框架&#xff0c;它使用了ES6的语法和async/await特性&#xff0c;使得编写异步代码更加简单和优雅。Koa2的核心思想是中间件&#xff0c;它允许开发者将应用程序拆分成小的、可重用的部分&#xff0c;从而使得代码更加模块化和易于维…...

Qml实现Dock浮动、停靠功能

纯Qml实现Dock浮动、停靠功能 效果展示github地址:介绍环境Demo代码参数说明API说明 效果展示 Qml Dock效果演示 github地址: https://github.com/longtwilight/QmlDock 介绍 这是一个使用纯qml实现的Dock组件&#xff0c;它支持停靠、浮动、窗体分离、窗体独立、大小调整等…...

最新版本 Stable Diffusion 开源 AI 绘画工具之微调模型篇

✨ 目录 &#x1f388; 模型种类&#x1f388; 变分自动编码器 / VAE&#x1f388; 美学梯度 / Aesthetic Gradients&#x1f388; 大型语言模型的低阶自适应 / LoRA&#x1f388; 超网络模型 / Hypernetwork&#x1f388; 微调模型 / LyCORIS &#x1f388; 模型种类 当你打开…...

路径规划算法:基于哈里斯鹰优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于哈里斯鹰优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于哈里斯鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…...

Web 应用程序防火墙 (WAF) 相关知识介绍

Web应用程序防火墙 (WAF) 如何工作&#xff1f; Web应用防护系统&#xff08;也称为&#xff1a;网站应用级入侵防御系统。英文&#xff1a;Web Application Firewall&#xff0c;简称&#xff1a;WAF&#xff09;。利用国际上公认的一种说法&#xff1a;Web应用防火墙是通过执…...

docker快速部署hue+hue集成hive

首先需要安装hive&#xff0c;hive的安装在HIVE的安装与配置_EEEurekaaa&#xff01;的博客-CSDN博客 安装完成之后&#xff0c;使用脚本命令启动hdfs和hive的相关服务。 一、安装docker # 安装yum-config-manager配置工具 $ yum -y install yum-utils # 设置yum源 $ yum-co…...

基于java SpringBoot和Vue uniapp的校园信息交流小程序

随着信息社会的网络化和计算机科学的广泛普及和迅速普及应用&#xff0c;具有综合智能的我国校园信息教育网络已成为推动中小学科学教育及其实践科学发展的信息技术手段。迅速推进了信息化改革&#xff0c;改善了高校信息交流的网络环境&#xff0c;提高了信息教育平台的管理水…...

数据包伪造替换、会话劫持、https劫持之探索和测试

&#xff08;一&#xff09;数据包替换攻击 该攻击过程如下&#xff1a;伪造服务器响应客户端的数据包。监听客户端的数据包&#xff0c;用预先伪造的数据包&#xff0c;伪装成服务器返回的数据发送给客户端。 因为攻击者跟目标在同一个局域网&#xff0c;所以攻击者发送的数…...

正则表达式集合

目录 一、校验数字的表达式 1. 数字 2. n位的数字 3. 至少n位的数字 4. m-n位的数字 5. 零和非零开头的数字 6. 非零开头的最多带两位小数的数字 7. 带1-2位小数的正数或负数 8. 正数、负数、和小数 9. 有两位小数的正实数 10. 有1~3位小数的正实数 11. 非零的正整…...

Django框架中models对象转换为json的方法

在django框架中输出api接口时一般都是输出json数据但是通过orm获取的数据库数据一般都是object所以需要转换成json数据&#xff0c;一般有一下3种情况 1.models对象使用“all()”时 from django.http import HttpResponse from django.core import serializers from TestMode…...

利用Servlet编写第一个“hello world“

利用Servlet编写第一个"hello world" &#x1f50e;创建 Maven 项目&#x1f50e;引入依赖&#x1f50e;创建目录&#x1f50e;编写代码&#x1f50e;打包代码&#x1f50e;部署&#x1f50e;程序验证&#x1f50e;结尾 &#x1f50e;创建 Maven 项目 Maven 是一个构…...

python 爬虫之js逆向爬虫详解

随着网站前端技术的不断发展&#xff0c;越来越多的网站采用JS进行渲染&#xff0c;并加上了一些反爬机制&#xff0c;导致传统的爬虫技术有些力不从心。本文将为大家介绍如何进行JS逆向爬虫&#xff0c;并且不少于1000字。 一、JS逆向爬虫的介绍 JS逆向是一种分析反爬机制的…...

SpringBoot:WebSocket实现消息撤回、图片撤回

下面只是讲述一下实现思路&#xff0c;代码基本没有哈&#xff01;有时间单独发表一篇关于websocket的相关操作的博客。 1. 消息撤回、图片撤回 个人觉得关于撤回&#xff0c;需要下述几个过程&#xff1a; 发送的消息的标签上可以定义一个属性&#xff0c;这个属性的值应该是…...

输出指定日期区间内的所有天、周、月

部分方法需要依赖hutool工具包。 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.5.10</version> </dependency>需求&#xff1a;输出2023-04-17到2023-05-23期间所有的天、周、月。…...

【线性规划模型】

线性规划模型&#xff1a;原理介绍和预测应用 引言 线性规划是运筹学中一种重要的数学优化方法&#xff0c;被广泛应用于各个领域&#xff0c;包括工业、经济、物流等。 线性规划模型的原理 线性规划模型的目标是在一组线性约束条件下&#xff0c;寻找一组变量的最优解&…...

android 12.0卸载otg设备开机不加载otg设备

1.概述 在12.0定制化开发过程中,客户有功能需求,通过系统属性值控制是否加载挂载otg设备,当设置为卸载模式时,要求不能挂载otg设备,开机也不能挂载otg设备 2.卸载otg设备开机不加载otg设备的核心代码 frameworks/base/services/core/java/com/android/server/StorageMan…...

通过 Wacom 的 Project Mercury 提高远程办公效率

过去几年中&#xff0c;我们的工作方式发生了翻天覆地的变化。疫情加快了对远程办公和协作的采纳&#xff0c;导致人们更加依赖技术来联系团队和提高工作效率。 但是&#xff0c;那些依靠专门硬件和软件来完成工作的创作者呢&#xff1f;艺术家、设计师和开发人员需要使用专门…...

Linux-0.11 文件系统namei.c详解

Linux-0.11 文件系统namei.c详解 模块简介 namei.c是整个linux-0.11版本的内核中最长的函数&#xff0c;总长度为700行。其核心是namei函数&#xff0c;即根据文件路径寻找对应的i节点。 除此以外&#xff0c;该模块还包含一些创建目录&#xff0c;删除目录&#xff0c;创建目…...

计算机网络学习笔记

<!-- GFM-TOC --> 计算机网络体系结构 传输层&#xff1a;TCP和UDP 什么是三次握手&#xff1f; 什么是四次挥手&#xff1f; TCP如何实现流量控制&#xff1f; TCP的拥塞控制是怎么实现的&#xff1f; TCP如何最大利用带宽&#xff1f; TCP与UDP的区别 TCP如何保…...

Pod相关操作命令

Pod相关操作命令 Pod setup # CocoaPods 将信息下载到~/.cocoapods/repos 目录下。如果安装 CocoaPods 时不执行此命令&#xff0c;在初次执行pod intall 命令时&#xff0c;系统也会自动执行该指令 pod --version # 检查 CocoaPods 是否安装成功及其版本号 pod repo update #…...

图灵完备游戏:信号计数 解法记录

使用1个全加器 2个半加器完成。这关的思想主旨在于如何把输出4&#xff0c;输出2&#xff0c;输出1的情况统一在一根导线上。 首先用一个全加器来完成输入2-4这三个引脚的计数&#xff0c;因为全加器输出范围二进制是00 - 11&#xff0c;而输入正好有两个引脚数位是2和1&…...