【探索 Kubernetes|集群搭建篇 系列 6】从 0 到 1,轻松搭建完整的 Kubernetes 集群

news2024/9/27 19:23:13

前言

大家好,我是秋意零。

前面一篇中,我们介绍了 kubeadm 的工作流程。那么今天我们就实际操作一下,探索如何快速、高效地从 0 开始搭建一个完整的 Kubernetes 集群,让你轻松驾驭容器化技术的力量!!

👿 简介

  • 🏠 个人主页: 秋意零
  • 🧑 个人介绍:在校期间参与众多云计算相关比赛,如:🌟 “省赛”、“国赛”,并斩获多项奖项荣誉证书
  • 🎉 目前状况:24 届毕业生,拿到一家私有云(IAAS)公司 offer,暑假开始实习
  • 🔥 账号:各个平台, 秋意零 账号创作者、 云社区 创建者
  • 💕 欢迎大家:欢迎大家一起学习云计算,走向年薪 30 万

在这里插入图片描述

系列文章目录


【云原生|探索 Kubernetes-1】容器的本质是进程
【云原生|探索 Kubernetes-2】容器 Linux Cgroups 限制
【云原生|探索 Kubernetes 系列 3】深入理解容器进程的文件系统
【云原生|探索 Kubernetes 系列 4】现代云原生时代的引擎
【云原生|探索 Kubernetes 系列 5】简化 Kubernetes 的部署,深入解析其工作流程



文章目录

  • 前言
  • 系列文章目录
  • 一、MiniKube 启动集群
  • 二、kubeadm 部署准备工作
  • 四、基础环境配置
  • 五、安装 Docker
  • 六、安装 kubeadm、kubelet、kubectl
  • 七、kubeadm 初始化 Kubernetes 集群
    • 1.Master 节点操作
    • 2.Node 节点操作
    • 3.部署网络插件
  • 八、部署 Dashboard 可视化插件
    • 下载 Dashboard 的 YAML 文件
    • 浏览器访问
  • 九、部署存储插件
    • 部署 ROOK
  • 总结

正文开始

  • 快速上船,马上开始掌舵了(Kubernetes),距离开船还有 3s,2s,1s…

在这里插入图片描述

如果不太关注如何手动部署 Kubernetes 集群的朋友,可以跳过或者使用 MiniKube 、Kind、国内版的 MiniKube本地启动简单的 Kubernetes 集群进行后面的学习即可。这里简单介绍一下 MiniKube 启动集群( MiniKube 官方文档),详解介绍 kubeadm 启动集群。

上一篇中留下一个问题,大家都清楚了吗?

kubeadm 方式部署集群,不能应用在生产环境当中,原因是没有生产级别可用的:类似于高可用、授权、多租户、灾难备份等功能,所以只要支持高可用等生产级别就行,我们探讨的 kubeadm 部署集群方式,不支持。

大家可以去了解一下 kubeadm 创建高可用性集群,后续也会讲到,期待一下吧。

一、MiniKube 启动集群

MiniKube 官方文档:https://minikube.sigs.k8s.io/docs/start/

1.安装 Docker

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
systemctl enable docker

2.启动集群

minikube start --force

minikube kubectl -- get po -A
alias kubectl="minikube kubectl --"
kubectl get po -A

查看组件(Pod)是否运行:

  • 在这里插入图片描述

二、kubeadm 部署准备工作

本地我们一般是使用 VMware Workstation 虚拟机软件。安装虚拟机点这里。

  • Linux 主机,3.10 及以上的内核版本(如:CentOS 7)
  • 至少 2 GB RAM(内存)
  • 至少 2 个 CPU 核心
  • 集群所有机器的网络相互连接
  • 节点之中不可以有重复的主机名、MAC 地址或 product_uuid
  • 禁用 swap 交换分区。为了保证 kubelet 正常工作,必须禁用交换分区。(永久关闭)
    更多详细信息

1.我准备的机器配置如下

  • 4 GB RAM
  • 2 个 CPU 核心
  • 100 GB磁盘(至少保证 20 GB)
  • 内网互通、外网单通(NAT)

2.实践的目标

我们部署的 Kubernetes 版本是 v1.23.1 基于 Docker,如果想使用 containerd 点这里:kubernetes-v1.25.3 基于containerd 容器运行时。

  1. 基础环境配置,如:关闭防火墙、selinux、swap 等;
  2. 安装 Docker ;
  3. 安装 kubeadm、kubelet、kubectl ;
  4. kubeadm 初始化 Kubernetes 集群(Master、Node 节点);
  5. 部署 flannel 网络插件;
  6. 部署 Dashboard 可视化插件。

四、基础环境配置

注意:Master 和 Node 节点都操作。

# 修改主机名
hostnamectl set-hostname master
hostnamectl set-hostname worker
# 主机映射
cat >> /etc/hosts << EOF
192.168.200.15 master
192.168.200.16 worker
EOF

# 关闭 firewalld
systemctl stop firewalld
systemctl disable firewalld
#临时关闭 selinux
setenforce 0 
#永久关闭 selinux
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config 

# 关闭swap分区
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

#配置 yum
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

#时间同步
yum install ntpdate -y
ntpdate ntp1.aliyun.com

转发 IPv4 并让 iptables 看到桥接流量

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# 应用 sysctl 参数而不重新启动
sudo sysctl --system

#确认 br_netfilter 和 overlay 模块被加载
lsmod | grep br_netfilter
lsmod | grep overlay

#系统变量在sysctl 配置中被设置为 1
sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

五、安装 Docker

注意:Master 和 Node 节点都操作。

阿里巴巴开源镜像站

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
systemctl enable docker


#配置 docker 加速地址和 Cgroup
cat > /etc/docker/daemon.json <<EOF
{
   "registry-mirrors": ["https://uwtwp6l0.mirror.aliyuncs.com"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl restart docker

六、安装 kubeadm、kubelet、kubectl

注意:Master 和 Node 节点都操作。

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安装 kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1,这样我们 Kubernetes 集群版本也对应会安装 v1.23.1 版本
yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1
systemctl enable kubelet && systemctl start kubelet

# 为了实现 docker 使用的 cgroupdriver 与 kubelet 使用的 Cgroup 的一致性
cat > /etc/sysconfig/kubelet << EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF

七、kubeadm 初始化 Kubernetes 集群

1.Master 节点操作

  • 注意:安装 Kubernetes 时,我们对应组件镜像,如果没有科学上网是拉取不下来的,这里使用 --image-repository=registry.aliyuncs.com/google_containers 参数替换从默认镜像仓库拉取,改为 aliyun 镜像仓库。
# 查看 k8s 组件镜像
kubeadm config images list

# 下载 k8s 组件镜像
kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers  --kubernetes-version=v1.23.1 

# 创建 k8s 集群(初始化)
kubeadm init --kubernetes-version=v1.23.1 --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers
  • 复制证书到 .kube 目录下,kubectl 默认会使用这个目录下的授权信息访问 Kubernetes 集群;如果不这样做的话,我们每次都需要通过 export KUBECONFIG 环境变量告诉 kubectl 这个安全配置文件的位置。
# 复制证书到 .kube 目录下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

2.Node 节点操作

  • Master 节点执行,生成 bootstrap-token,非安全模式连接 Master 节点。
$ kubeadm token create --print-join-command
kubeadm join 192.168.200.15:6443 --token ylls57.b0gfk6o9zq5wslgc --discovery-token-ca-cert-hash sha256:c16a38026f66381f5911f1fdbe44220069b969b83174486e5b602c11646b0a51
  • Node 节点执行,上诉生成的 bootstrap-token,连接 Master 节点,加入集群。
kubeadm join 192.168.200.15:6443 --token ylls57.b0gfk6o9zq5wslgc --discovery-token-ca-cert-hash sha256:c16a38026f66381f5911f1fdbe44220069b969b83174486e5b602c11646b0a51

3.部署网络插件

注意:Master 节点操作

通过 kubectl get 命令查看集群节点状态和 所以 Pod 状态,如图:可以看到 Node 节点 STATUS NotReady (未就绪)而 Pod coredns 的状态是 Pending ,这是为什么呢?

  • 在调试 Kubernetes 集群时,最重要的手段就是用 kubectl describe 命令来查看这个节点对象的详细信息、状态和事件(Event):

NotReady 和 Pending 的原因在于:我们尚未部署任何网络插件。

在这里插入图片描述

部署网络插件,以 flannel 为例:

yum install -y wget
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

部署完成后,我们在次查看 Node 和 coredns Pod 的状态:

[root@master ~]# kubectl get node
NAME                    STATUS     ROLES                  AGE   VERSION
localhost.localdomain   Ready      <none>                 12m   v1.23.1
master                  Ready      control-plane,master   80m   v1.23.1


[root@master ~]# kubectl get pod -A
NAMESPACE      NAME                             READY   STATUS              RESTARTS   AGE
kube-flannel   kube-flannel-ds-7dchq            1/1     Running             0          4m
kube-flannel   kube-flannel-ds-w7kh9            1/1     Running            0          4m
kube-system    coredns-6d8c4cb4d-9tkz5          1/1     Running             0          82m
kube-system    coredns-6d8c4cb4d-q4jcx          1/1     Running             0          64m
kube-system    etcd-master                      1/1     Running             0          82m
kube-system    kube-apiserver-master            1/1     Running             0          82m
kube-system    kube-controller-manager-master   1/1     Running             0          82m
kube-system    kube-proxy-4vpws                 1/1     Running             0          82m
kube-system    kube-proxy-ss7xr                 1/1     Running			    0          14m
kube-system    kube-scheduler-master            1/1     Running             0          82m

Kubernetes 支持容器网络插件,使用的是一个名叫 CNI 的通用接口,它也是当前容器网络的事实标准,市面上的所有容器网络开源项目都可以通过 CNI 接入 Kubernetes,比如 Flannel、Calico、Canal、Romana 等等

八、部署 Dashboard 可视化插件

下载 Dashboard 的 YAML 文件

官方 GitHub下载地址:https://github.com/kubernetes/dashboard/releases

# 下载 dashboard 的 recommended.yaml
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

下载后 vi 或 vim,编辑 recommended.yaml 在 Service 服务名为:kubernetes-dashboard 的指定位置,添加 NodePort 方式访问 Dashbaord ,如图:

  • 在这里插入图片描述

部署 dashboard,这里需要等待 2 分钟左右,拉取镜像时间,可以使用 kubectl get pod -A 查看 dashbaord 的 Pod 是否运行了。

kubectl apply -f recommended.yaml

获取 token 值,这个 token 值登录 dashboard 时需要使用:

kubectl describe secret -n kubernetes-dashboard  $(kubectl get secret -n kubernetes-dashboard | grep kubernetes-dashboard-token | awk '{print $1}')
  • 在这里插入图片描述

浏览器访问

注意:这里默认使用的是 https 协议,不是 http 协议。

查看 dashbaord 的 service 服务提供的端口,这里为:31080。所以,浏览器输入:https://192.168.200.15:31080 (格式:https://宿主机ip:31080)

[root@master test]# kubectl get service -A | grep kubernetes-dashboard
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   10.99.233.125   <none>        8000/TCP                 43m
kubernetes-dashboard   kubernetes-dashboard        NodePort    10.98.222.55    <none>        443:31080/TCP            43m
  • 访问时出现下列错误

解决方法是:保持焦点在页面内,鼠标在页面空白处点击(不选中任何按钮),直接输入“thisisunsafe”,输完后按回车键,就可以正常访问网页。

这里要注意的是,输入的时候页面时不会有任何反应的,也不会显示输入的字符,是正常现象。输入完毕后点回车即可。

在这里插入图片描述

  • 输入前面获取的 token 值,登录即可。

在这里插入图片描述

进入 Dashbaord 最终界面:

在这里插入图片描述

九、部署存储插件

为了实现容器持久化存储,我们这里部署 Rook 项目。

  • Rook 项目是一个基于 Ceph 的 Kubernetes 存储插件。Rook 将分布式存储系统转变为自我管理、自我扩展、自我修复的存储服务。它自动执行存储管理员的任务:部署、引导、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理。

容器的持久化存储,就是用来保存容器存储状态的手段。存储插件为容器提供远程数据卷,使得容器里面的数据,被保存在远程存储服务器的磁盘中,或者以分布式的方式保存在多个节点上,而与当前宿主机的存储没有任何绑定关系。

这样无论你在哪个宿主机上启动新的容器,都可以请求挂载指定的持久化存储卷,从而访问到数据卷里保存的内容。

部署 ROOK

ROOK 官网:https://rook.io/

官网下载地址:https://github.com/rook/rook/releases

# 如果 git 不下来,就使用上述提供的官网下载地址,下载 tar 包,后上传解压。
git clone --single-branch --branch v1.11.6 https://github.com/rook/rook.git
cd rook/deploy/examples
kubectl create -f crds.yaml -f common.yaml -f operator.yaml

[root@master examples]# kubectl -n rook-ceph get pod
NAME                                 READY   STATUS    RESTARTS   AGE
rook-ceph-operator-585f6875d-4fqx2   1/1     Running   0          8m52s
[root@master examples]# kubectl get -f operator.yaml
NAME                                  DATA   AGE
configmap/rook-ceph-operator-config   31     9m6s

NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/rook-ceph-operator   1/1     1            1           9m6s

现在 Rook operator 正在运行,我们可以创建 Ceph 集群。

kubectl create -f cluster.yaml

总结

今天介绍了,使用 kubeadm 部署 Kubernetes 集群,可以发现其实并不复杂。

重点简述了 kubeadm 初始化集群部分。

Rook 是很有前途的项目,合理的使用了很多,如: Operator、CRD 等重要的扩展特性。大家可以先去了解一下这个项目。

最后,今天我们从 0 到 1 搭建 kubernetes 集群就算是介绍完了。

如有不对的地方,欢迎各位大佬指正。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/637413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

*问题 F: 2026 模拟测试2(三数之和)

题目描述 有3个整数a1&#xff0c;a2&#xff0c;a3。已知0 < a1, a2, a3 < n&#xff0c;而且a1 a2是2的倍数&#xff0c;a2 a3是3的倍数&#xff0c; a1 a2 a3是5的倍数。你的任务是找到一组a1&#xff0c;a2&#xff0c;a3&#xff0c;使得a1 a2 a3最大。 输入 …

【JavaWeb】IDEA专业版和社区版创建Servlet项目

文章目录 1. 什么是Servlet2. 创建项目3. 引入依赖3.1 在pom.xml中引入依赖3.2 下载jar包引入依赖 4. 创建目录5. 编写代码验证6.总结 1. 什么是Servlet Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app.&#xf…

短视频账号矩阵系统源码--并发量问题怎么开发?

目录&#xff1a; 1.视频存储后端并发量如何实现 2.短视频矩阵系统开发的语言 3.需要对接的技术开放平台开发者对接的api接口 4.功能模型技术创建 文章目录 短视频账号矩阵系统后端如何处理并发量冲突问题前言一、视频存储后端并发量如何实现二、短视频矩阵系统开发语言三、…

RestTemplate发送HTTP请求

一、前言 之前对发送http请求&#xff0c;使用过okhttp&#xff0c;还有httpclient等&#xff0c;这次就直接使用springboot的RestTemplate了。 二、不同的请求方式 我这里只针对POST请求做说明&#xff1a; 下面针对post请求做三种说明&#xff1a; 1、调用的接口参数用Re…

我们来谈谈https

"这一封信只是得到它要回答问题&#xff0c;那个答案早已点燃在心里" 一、 http明文传输 紧接上文这仍然是一款拙劣的http服务器&#xff0c;我们此时在用户数输入栏输入数据信息并提交表单。我们先来认识认识使用到的两个工具软件。 1.PostMan postman是一款支持h…

阿里巴巴首次公开4份【并发编程全彩小册】:模型 + 原理 + 应用 + 模式, 四管齐下

相信大家都是知道的&#xff0c;阿里可以说是程序员的“必修地”每一个程序员都渴望去阿里看看&#xff0c;学习进步一下&#xff0c;但是有时候偏偏局限于自己的技术不到位&#xff01; 但是没关系&#xff0c;就算进不来了阿里&#xff0c;但是可以学习他们的技术呀&#xf…

CONT: Contrastive Neural Text Generation

CONT: Contrastive Neural Text Generation 首先&#xff0c;CONT使用自己的预测中的负面例子&#xff08;3.1&#xff09;来构建B集。&#xff08;原因解释&#xff1a;Kalkstein等人[18]指出&#xff0c;使用不同的对比性样本有助于提高模型的泛化能力。因此&#xff0c;我们…

短视频云端批量混剪实操指南

本文为阿里云智能媒体服务IMS「智能内容创作」实践指南第一期&#xff0c;讲述围绕新媒体广告营销场景&#xff0c;通过“去重策略”全自动批量混剪短视频&#xff0c;助力更高效、更快速地创作优质短视频内容。 欧叔&#xff5c;作者 5G时代&#xff0c;越来越多的企业把短视…

步进电机 力矩选型参考

(* 要提升1KG 的物体&#xff0c;以0 .3 米/秒的速度的提升&#xff0c;步进电机如何选型&#xff1f; 如果不是克服重力则FM*A 力越大加速度越大 *) Clear["Global"] qua 0.2;(* 输入 quality 1kg *) Tao qua*9.8; mps 0.2;(* 输入 0.3 M/S *) dia 0.01;(* 1cm…

多对一(association)、一对多(collection)

1、多对一的处理 多对一的理解&#xff1a; 多个学生对应一个老师如果对于学生这边&#xff0c;就是多对一的现象&#xff0c;即从学生这边关联一个老师&#xff01; 1.1、数据库的设计 CREATE TABLE teacher ( id INT(10) NOT NULL, name VARCHAR(30) DEFAULT NULL, PRIMAR…

Apple Vision Pro -开始使用visionOS

Apple Vision Pro -开始使用visionOS visionOS将熟悉的框架和全新的概念结合在一起&#xff0c;因此您可以为空间计算构建一个全新的应用程序世界。为了帮助您开始您的旅程&#xff0c;我们将介绍一系列会议&#xff0c;涵盖空间计算的构建块以及为该平台设计应用程序和游戏。…

软件开发模型

一、 概述   软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码、测试和维护 阶段。   软件开发模型能清晰、直观地表达软件开发全过程&#xff0c;明确规定了要完成的主要活动和任务&#xff0c;用来作…

rider发布项目报错:[MSB4057] 该项目中不存在目标“WebPublish”。

情景再现 Rider升级到2022.3版本及以上时&#xff0c;发布项目显示&#xff1a; [MSB4057] 该项目中不存在目标“WebPublish”。 或者显示 Error:Current toolset does not support publishing for non-Core ASP.NET projects 原因 这是因为Rider MSBuild版本不一致导致。 解…

基于javaweb(springboot+mybatis)宠物医院预约管理系统设计和实现以及论文报告

基于javaweb(springbootmybatis)宠物医院预约管理系统设计和实现以及论文报告 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

参会记录 | 北京智源大会-基础模型前沿技术论坛

2023年6月10日上午&#xff0c;线上参与了北京智源大会&#xff0c;主要观看了2023北京智源大会-基础模型前沿技术论坛&#xff0c;以下是论坛中比较感兴趣的点和思考。 本次论坛的演讲嘉宾如下&#xff1a; 上述嘉宾有来自业界的刘胤晗老师和周彦祺老师&#xff0c;也有来自…

【06】STM32·HAL库开发-STM系统框架 | STM32寻址范围 | STM32存储器映射 | STM32寄存器映射

目录 1.STM32系统框架&#xff08;了解&#xff09;1.1Cortex M内核 & 芯片1.2F1系统架构1.2.1F1系统框架简图1.2.2F1系统框架总图 1.3F4系统架构1.3.1F4系统框架简图&#xff08;F407为例&#xff09;1.3.2F4系统框架总图 1.4F7系统架构1.4.1多重AHB总线矩阵1.4.2F7系统结…

如何防止U盘复制电脑文件?

在我们的工作中&#xff0c;经常需要将重要的文件存在电脑中&#xff0c;我们必须要妥善的保护这些重要数据&#xff0c;那么该如何防止U盘复制电脑中的文件呢&#xff1f; 要想防止U盘复制电脑文件&#xff0c;可从三个方面入手&#xff0c;分别是&#xff1a; 禁止电脑使用U…

吴恩达471机器学习入门课程1第2周——线性回归(单变量)

文章目录 Linear Regression1 导包2 - 问题陈述3 - 数据集可视化数据 4 - 线性回归复习5 - 计算代价代价函数模型预测实现 6 - 梯度下降批量梯度下降法学习参数 Linear Regression 您将使用一个变量实现线性回归&#xff0c;以预测餐厅特许经营的利润。 1 导包 首先&#xf…

【电路】电路与电子技术基础 课堂笔记 第12章 集成逻辑门电路

12.4 正逻辑与负逻辑 正负逻辑转换规则 正负逻辑符号

2023 华为 Datacom-HCIE 真题题库 (6月11新增部分)--含解析

单项选择题 1.[试题编号:263143] (单选题)华为CloudCampus位置服务(wifi方案),获取基于在wifi的位置数据,并上报至开发者的LBS应用。开发者可以使用数据,计算范围内的wi-fi终端位置信息。对于LBS位置应用和iMaster NCE的交互流程,以下哪项是错误的?(单选)单选 A、LBS…