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

【应用】Kubernetes

Kubernetes

  • k8s 安装流程
    • 安装前配置
    • 安装 docker 以及 k8s 组件
    • 初始化 k8s 集群
    • 测试使用:安装 kubernetes-dashboard
  • k8s 基础概念
    • k8s 核心技术概念
    • k8s 内部组件
    • k8s 中的 IP 地址
    • K8S 服务暴露的三种方式

k8s 安装流程

k8s-masterk8s-node01k8s-node02
192.168.86.140192.168.86.141192.168.86.142

使用的虚拟机系统为 centOS 7,三台机器配置均为 2 核 4 G;

安装前配置

在进行安装前需要在每一台节点服务器执行下列配置

关闭防火墙服务

systemctl stop firewalld
systemctl disable firewalld

关闭 selinux,修改/etc/selinux/config配置文件,设置SELINUX=disabled

vi /etc/selinux/config

关闭 swap 分区,修改/etc/fstab配置文件

vi /etc/fstab
# 将下面这行配置注释掉
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

添加主机名与 ip 的映射关系,修改各个节点的/etc/hosts,添加下列配置

192.168.86.140 k8s-master
192.168.86.141 k8s-node01
192.168.86.142 k8s-node02

分别在每一个节点修改主机名

hostnamectl set-hostname k8s-master # 192.168.86.140
hostnamectl set-hostname k8s-node01 # 192.168.86.141
hostnamectl set-hostname k8s-node02 # 192.168.86.142

将桥接的 IPv4 流量传递到 iptables 的链,然后重新加载系统配置

cat > /etc/sysctl.d/k8s.conf << EOF
net.ipv4.ip_forward = 1
net.ipv4.tcp_tw_recycle = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOFsysctl --system # 重新加载系统配置

为避免低内核产生问题,将所有机器的内核进行升级

查看当前版本内核

uname -a
# 当前内核如下
Linux k8s-node01 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

执行升级,安装 epel 源

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

查看内核版本并安装最新版本(这里安装的是 5.4.224 版本)

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装最新 lt 内核版本

yum --disablerepo='*' --enablerepo=elrepo-kernel install kernel-lt -y

查看系统 grub 内核的启动列表,这里编号 0 的 5.4.224 的 lt 版本是我们新安装的

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

指定以新安装的编号 0 的内核版本为默认启动内核,重新启动服务器

grub2-set-default 0
reboot

卸载旧内核版本

yum remove kernel -y

查看内核版本是否已经升级完毕

uname -a
# 当前内核版本如下
Linux k8s-node01 5.4.224-1.el7.elrepo.x86_64 #1 SMP Tue Nov 8 17:24:56 EST 2022 x86_64 x86_64 x86_64 GNU/Linux

安装 docker 以及 k8s 组件

安装常用软件包

yum install vim bash-completion net-tools gcc -y

使用 aliyun 数据源安装 docker-ce,并设置开机自启

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable docker

安装完 docker 后添加 aliyun 的 docker 仓库加速器(注册获取专属加速器地址)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装kubectl、kubelet、kubeadm,首先配置阿里 k8s 源

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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

执行 kubectl、kubelet、kubeadm 安装,并设置 kubelet 开机启动

yum -y install kubectl-1.18.0 kubelet-1.18.0 kubeadm-1.18.0
systemctl enable kubelet

初始化 k8s 集群

初始化 master 节点(注意,要求 master 节点至少为双核)

kubeadm init --kubernetes-version=1.18.0  \
--apiserver-advertise-address=192.168.86.140   \
--image-repository registry.aliyuncs.com/google_containers  \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.100.0.0/16

初始化成功终端将打印下列信息,最后两行信息需要其他节点在加入集群时执行

Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.86.140:6443 --token 2xx8pk.0pz1axnn4ujkp4hh \--discovery-token-ca-cert-hash sha256:b16181c504732670348e871158e701138e884959b1bd6ba5833e442aef3d213c

创建 kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

在 master 节点安装 calico 网络,第二行中的10.100.0.0需要与初始化 master 时设置的pod-network-cidr相同

curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O
sed -i 's/192.168.0.0/10.100.0.0/g' calico.yaml
kubectl apply -f calico.yaml

在 node01 和 node02 节点执行命令加入集群

kubeadm join 192.168.86.140:6443 --token 2xx8pk.0pz1axnn4ujkp4hh     --discovery-token-ca-cert-hash sha256:b16181c504732670348e871158e701138e884959b1bd6ba5833e442aef3d213c

在 node01 和 node02 节点创建 kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

至此可以在任意节点查询集群节点状态

kubectl get nodes

至此 k8s 集群配置完成!

测试使用:安装 kubernetes-dashboard

Dashboard 是可视化插件,它可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。

下载相应的 yaml 文件到本地

curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml -O

修改配置文件 yaml 文件

vim recommended.yaml

在文件中添加类型与映射端口号,如图所示

在这里插入图片描述

启动服务

kubectl create -f recommended.yaml

查看服务启动情况

kubectl get pod --all-namespaces -o wide

在这里插入图片描述

访问https:ip:30000,登录需要 token,查询 token 获取的服务名

kubectl -n kubernetes-dashboard get secret

使用下列指令获取 token,-n kubernetes-dashboard后面的名字需要与刚才查询出的名称前缀为kubernetes-dashboard-token的服务名相同

kubectl describe secrets -n kubernetes-dashboard kubernetes-dashboard-token-d9tqk  | grep token | awk 'NR==3{print $2}'

填入查询出的 token,即可登录到页面(使用谷歌浏览器会被拒绝访问,可以使用 Microsoft Edge)

在这里插入图片描述

若存在权限报错问题,参考kubernetes dashboard 授权/权限/角色绑定问题导致页面报错

k8s 基础概念

kubernetes 是基于容器技术的分布式架构

k8s 核心技术概念

Master

  • Master 是整个集群的大脑,负责整个集群的管理和调度。

Node

  • Node 是集群中的工作节点,是应用容器真正运行的节点。

  • Node 受 Master 控制并向其汇报容器运行的状态。

Pod

  • Pod 是一个或者多个容器的集合,是 k8s 执行调度的最小单位,运行在每个节点上的应用实际上就是一个 Pod。

  • Pod 实际上是对一组容器的封装,同一 Pod 中的容器会被 Master 一起调度到某个 Node 上运行。

  • Pod 中的容器可以通过 Valume 共享存储,且共享 ip 地址。

Service

  • Service 是对一组 Pod 的封装,其负责发现 Pod 服务并维护 Pod-ip 列表。

  • Service 对外提供自己的 ip 和端口,实现外界对这一组 Pod 的访问,并为 Pod 提供负载均衡。

  • Service 对外提供多种入口:

    • ClusterIP:创建一个虚拟的 ip 地址,该地址在集群内唯一且不可修改,通过这个唯一的 ip 可以访问 Pod;

    • NodePort:Service 会在每一个 Node 都开放一个端口,可以通过任意 Node 的 ip + 端口号的方式访问 Pod;

    • LoadBalancer:在 NodePort 的基础上,创建一个外部的负载均衡器,并将所有请求都转发到 NodeIP:NodePort;

    • ExternalName:将服务通过 DNS CNAME 的方式转发到指定的域名(通过 spec.externalName 进行配置);

Deployment

  • Deployment 可以部署和管理应用,其可以管理多个 Pod 副本,并保证 Pod 按照期望的状态运行。

  • Deployment 通过 yml 配置文件去描述应用,并根据配置文件中的描述对应用进行管理。

k8s 内部组件

在这里插入图片描述

在 master 节点查询所有的服务

kubectl get pods --all-namespaces -o wide

在这里插入图片描述

k8s 的主要组件主要包括五部分:

  • kube-apiserver:提供 REST 接口实现认证、授权、访问控制以及服务发现等功能;

  • kube-controller:维护 k8s 集群状态;

  • kube-proxy:管理 Service 的访问入口,对请求进行转发,包括 Pod 到 Service 以及集群外到 Service;

  • kube-scheduler:提供对 Pod 的调度管理;

  • kubelet:部署在 Node 节点的守护进程,与 apiserver 通信执行调度命令并且汇报 Node 的状态;

k8s 中的 IP 地址

Node IP

Node IP 就是物理机的 IP 地址,即我们的服务器或者虚拟机的 ip。当 Service 在 Node 节点开放一个端口时,外界可以通过 Node IP:端口号 的形式访问应用,就跟直接将应用部署在服务器相同。

在 k8s 查询 Node IP

kubectl get node
kubectl describe node <Node name>

Pod IP

Pod IP 是 Docker Engine 根据 Docker 网桥的 IP 地址进行分配的。相同 Service 下的 Pod 可以通过 Pod IP 相互访问;不同 Service 下的 Pod 通信则需要通过 Cluster IP。集群外访问 Pod 则需要通过 Node IP。

在 k8s 查询 Pod IP

kubectl get pods --all-namespaces
kubectl describe pods <Pod name> -namespace <Namespace>

Cluster IP

Cluster IP 即 Service IP,是一个虚拟 ip 地址,用于集群内各个服务间通信使用。

在 k8s 查询 Cluster IP

kubectl get services
kubectl describe service <Service name>

外部访问时的请求转发

由 Node IP + port 转发至 Service IP 再转发到对应的 Pod IP,实现访问

在这里插入图片描述

K8S 服务暴露的三种方式

NodePort

该方式需要指定服务对外暴露的接口,k8s 会在每一台服务器节点都开放该端口供外部请求进行访问。请求会被转发到 Service 进而转发到 Pod,请求过程如上图所示。

对外开放的端口号在创建 Service 的 yaml 文件中指定,通过spec.ports.nodePort参数进行配置,若不指定则 k8s 会随机选择一个端口号。

在生产环境中注意开放服务器的对应端口。

LoadBalance

该方式在 NodePort 的基础上,在各个开放的端口外包装了一层负载均衡器,该均衡器提供一个统一的 ip + 端口号 供外部访问,并将访问的请求均衡的分配给每个节点,而在 NodePort 模式中并没有进行负载均衡。

该方式的每一个负载均衡器都会暴露一个 ip + 端口号,因此无法做到通过统一的 ip 入口访问到所有的服务。其请求转发过程如下图所示。

在这里插入图片描述

Ingress

采用 NodePort 模式,将在每个服务器节点开启一个端口,若提供的服务很多,则开放的端口数量非常庞大,难以维护;采用 LoadBalance 模式,每一个服务都将拥有一个公网 ip,服务数量大时同样不好维护。

通过 Ingress 模式可以通过一个 Ingress 暴露多个服务,可以将其理解为可以动态配置服务地址的 Nginx,其本质就是一个微服务网关。

Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP和HTTPS。Ingress 可以提供负载均衡、SSL 和基于名称的虚拟托管。

在这里插入图片描述

相关文章:

Redis学习(七)|如何保证Redis中的数据都是热点数据

文章目录 题目分析回答扩展Spring Boot中时用LRU管理Redisapplication.propertiesapplication.yml Redis 缓存策略 题目 MySQL里有2000w数据&#xff0c;redis中只存20w的数据&#xff0c;如何保证redis中的数据都是热点数据? 分析 这个问题涉及到在一个数据量差异很大的情…...

深入探索JavaScript中的structuredClone:现代深拷贝的解密指南

在 JavaScript 中,实现深拷贝的方式有很多种,每种方式都有其优点和缺点。今天介绍一种原生 JavaScript 提供的structuredClone实现深拷贝。 下面列举一些常见的方式,以及它们的代码示例和优缺点: 1. 使用 JSON.parse(JSON.stringify(obj)) 代码示例:function deepClone(ob…...

基于TRIZ理论的锂电池生产工艺优化思路

在能源科技迅猛发展的今天&#xff0c;锂电池作为重要的储能元件&#xff0c;其生产工艺的优化与革新显得尤为关键。本文将基于TRIZ理论&#xff0c;探讨锂电池生产工艺的优化路径&#xff0c;以期提升能源产业的效率与环保性。 TRIZ&#xff0c;即发明问题解决理论&#xff0…...

探究:响应式编程(Reactive Programming)

在当今软件开发领域,响应式编程(Reactive Programming)成为了一个备受关注的话题。它提供了一种新的编程范式,与传统的命令式编程有着显著的不同。本文将详细讲解什么是响应式编程,以及它与传统的命令式编程的不同之处。在当今软件开发领域,响应式编程(Reactive Program…...

地下管线管网三维参数化建模软件MagicPipe3D V3.5

经纬管网建模系统MagicPipe3D&#xff08;www.magic3d.net&#xff09;自主安全可控&#xff0c;本地离线参数化构建三维管网模型&#xff08;管道、接头、附属物等&#xff09;&#xff0c;输出标准3DTiles、Obj等格式&#xff0c;支持Cesium、Unreal、Unity等引擎可视化查询分…...

【图像增强(空域)】基于直方图增强的图像增强及Matlab仿真

1. 摘要 图像的灰度直方图表示灰度图像中具有每种灰度像素的个数&#xff0c;反映了图像中每种灰度级出现的频率&#xff0c;是图像的基本统计特征之一。直方图均衡方法因为其有效性和简单性已成为图像对比度增强的最常用的方法。其基本思想是根据输入图像的灰度概率分布来确定…...

【应用】Kubernetes

Kubernetesk8s 安装流程安装前配置安装 docker 以及 k8s 组件初始化 k8s 集群测试使用&#xff1a;安装 kubernetes-dashboardk8s 基础概念k8s 核心技术概念k8s 内部组件k8s 中的 IP 地址K8S 服务暴露的三种方式k8s 安装流程 k8s-masterk8s-node01k8s-node02192.168.86.140192…...

GEE:关系、条件和布尔运算

ee.Image对象具有一组用于构建决策表达式的关系、条件和布尔运算方法。这些方法可以用来掩膜、绘制分类地图和重新赋值。 本文记录了在GEE&#xff08;Google Earth Engine&#xff09;平台上的关系运算符和布尔运算符&#xff0c;分别应用到了三个不用的场景&#xff08;筛选低…...

Java项目:SSM的KTV管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 主要功能包括&#xff1a; 登陆页,房间信息,房间管理,开取房间,房间查询,会员管理,食物管理,查看订单,查询订单,查看房间消费使用情况等功能。…...

包装类-Wrapper

包装类的分类 针对八种基本数据类型相应的引用类型-包装类有了类的特点&#xff0c;就可以调用对应的类中的方法 装箱和拆箱 Java是一种面向对象的编程语言&#xff0c;学习Java时就被明确灌输了一个概念&#xff1a;OOP&#xff0c;即面向对象编程。一切皆对象。但是基本…...

计算机网络——运输层【重点】

运输层概述 概念 进程之间的通信 从通信和信息处理的角度看&#xff0c;运输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时&…...

ADSP-21569/ADSP-21593的开发入门(上)

作者的话 ADI的SHARC系列DSP&#xff0c;目前已经出到5系列了&#xff0c;最新的一颗叫2159x&#xff0c;按照ADI的说法&#xff0c;这颗DSP的性能是21569的两倍&#xff0c;但又能和21569做P2P的替换&#xff0c;所以下面我们就以21593为例&#xff0c;写一点资料&#xff0c…...

【Android App】在线直播之搭建WebRTC的服务端(图文解释 简单易懂)

有问题或需要源码请点赞关注收藏后评论区留言私信~~~ 一、WebRTC的系统架构 WebRTC&#xff08;网页即时通信&#xff09;是一个支持浏览器之间实时音视频对话的新型技术&#xff0c;WebRTC体系由应用于实时通信的编程接口和一组通信协议组成&#xff0c;已成为互联网流媒体通…...

x265 帧间预测

帧间编码入口函数&#xff1a; 从 Analysis::compressCTU 是ctu编码的入口函数&#xff0c;根据 slice 类型判断是 I 还是 BP&#xff0c;如果是BP则执行帧间编码函数 Analysis::compressInterCU_rdx_x&#xff1a;&#xff1a;/*压缩分析CTU过程&#xff1a;1.为当前CTU加载QP…...

【sciter】安全应用列表控件总结

一、效果图 二、功能点 实现电脑文件拖拽进入到安全桌面,读取文件路径,生成应用。可以配置允许拖拽进入安全桌面的文件应用。点击添加图标,可以添加应用到安全桌面中。在安全桌面列表中每一个应用实现双击、失去焦点,获取焦点、右键事件在安全桌面列表中每一个应用可以实现…...

一篇文章让你搞懂Java顺序表

目录 一、 线性表的基本介绍 二、顺序表 1、顺序表的概念 2. 创建顺序表类&#xff08;ArrayList&#xff09; 2. 增加元素 3. 删除元素 4. 修改某个元素 5. 查找元素 Main类 在数据结构体系中我们将整个数据结构分为两类&#xff0c;一类是线性结构&#xff1b; 线性…...

小白必知必会的几个IP协议知识

小白必知必会的几个IP协议知识1.IP地址属于网络层协议2.路由控制3.数据链路的抽象化4.IP属于面向无连接型1.IP地址属于网络层协议 在计算机通信中&#xff0c;为了识别通信对端&#xff0c;必须要有一个类似于地址的识别码进行标识。 MAC地址是用来标识同一个链路中不同计算机…...

【45-线程的实现方式-线程池的创建方式-线程池的执行顺序-CompletableFutrue异步处理】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…...

前馈神经网络与支持向量机实战 --- 手写数字识别

前馈神经网络与支持向量机实战 — 手写数字识别 文章目录前馈神经网络与支持向量机实战 --- 手写数字识别一、前馈神经网络介绍二、支持向量机介绍三、数据集说明四、环境准备五、实验要求六、Python代码tutorial_minst_fnn-keras.py&#xff1a;使用TensorFlow的Sequential实现…...

idea导入eclipse项目的时候,Java图标变成黄色小J了,怎么解决?

凯哥今天导入一个15年时候写的小项目&#xff0c;当时使用的是eclipse写的。最近好几年都在使用idea&#xff0c;习惯了idea的&#xff0c;在用eclipse&#xff0c;不习惯&#xff0c;不顺手&#xff0c;就导入到idea中。发现&#xff0c;Java文件的图标变成了黄色的J。如下图&…...

Redis配置与优化

1 关系数据库与非关系型数据库概述 1.1 关系型数据库 一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上 一般面向于记录 SQL 语句&#xff08;标准数据查询语言&#xff09;就是一种基于关系型数据库的语言 用于执行对关系型数据库中…...

管理团队相关的梳理

管理团队是跟踪团队成员工作表现,提供反馈,解决问题并管理团队变更,以优化项目绩效的过程。本过程的主要作用是,影响团队行为、管理冲突以及解决问题等方式,实现团队管理。 输入 1.项目管理计划 --------资源管理计划 2. 项目文件 --------问题日志、经验教训登记册、项…...

HTML5期末大作业【红色的电影售票平台网站】web前端 html+css+javascript网页设计实例 企业网站制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…...

【三维目标检测】Part-A2(一)

Part-A2是商汤在CVPR 2020上发布的三维点云目标检测模型&#xff0c;来源于PointRCNN同一作者&#xff0c;论文名称《From Points to Parts 3D Object Detection from Point Cloud with Part-aware and Part-aggregation Network》。从名称可以看出&#xff0c;Part代表的是目标…...

C++输出四舍五入的一些小问题

嗯…今天刚去练了一会简单题 就我大一刚上学做的那种题&#xff0c;嗯&#xff0c;然后我发现我还是得调试&#xff0c;想骂人了&#xff0c;就啥样的题呢, 嗯,就这样的题&#xff0c;虽然我大一可能也过不了这种题&#xff0c;hh 现在题目里面要求一些四舍五入的问题 刚才没整…...

详解设计模式:责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;也被称为职责链模式&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 责任链模式 是将链中的每一个节点看作是一个对象&#xff0c;每个节点处理的请求不同&#xff0c;且内部自动维护一个下一节点…...

Python源码剖析笔记1-整数对象PyIntObject

1、PyIntObject 对象 [intobject.h] typedef struct {PyObject_HEADlong ob_ival; } PyIntObjectPyIntObject是一个不可变&#xff08;immutable&#xff09;对象。Python内部也大量的使用整数对象&#xff0c;我们在自己的代码中也会有大量的创建销毁整型对象的操作&#xff…...

求一个网页设计作业——个人博客(HTML+CSS)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…...

HTML5期末大作业:基于html+css+javascript+jquery实现藏族文化15页【学生网页设计作业源码】

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…...

2. IMU原理及姿态融合算法详解

文章目录2. IMU原理及姿态融合算法详解一、组合二、 原理a) 陀螺仪b) 加速度计c) 磁力计三、 旋转的表达a) 欧拉角b) 旋转矩阵c) 四元数d) 李群 SO(3)\text{SO}(3)SO(3) 及 李代数 so(3)\text{so}(3)so(3)四、 传感器的噪声及去除a) 陀螺仪b) 加速度计c) 磁力计五、姿态解算原理…...

【能效管理】安科瑞远程预付费系统在江西某沃尔玛收费管理的应用

摘要&#xff1a;文章根据用电远程管控原理&#xff0c;设计了用电预付费远程管理终端及管理系统&#xff0c;该系统以智能远程预付费电表、智能网关以及预付费管理软件实现了商业综合体的用电管理&#xff0c;实现了欠费自动分闸&#xff0c;充值后自动合闸&#xff0c;并辅助…...

HTML+CSS+JS做一个好看的个人网页—web网页设计作业

个人网页设计个人网页&#xff08;htmlcssjs&#xff09;——网页设计作业带背景音乐&#xff08;The way I still Love you&#xff09;、樱花飘落效果、粒子飘落效果页面美观&#xff0c;样式精美涉及&#xff08;htmlcssjs&#xff09;&#xff0c;下载后可以根据自己需求进…...

【MySQL】表的增删改查(一)

你可以了解世间万物&#xff0c;但追根溯源的唯一途径便是亲身尝试。——《心灵捕手》 前言&#xff1a; 大家好&#xff0c;我是拳击哥&#xff0c;今天给大家讲解的是mysql表GRUD操作中的新增数据、查询数据以及表中数据的排序、去重等。因篇幅过长&#xff0c;分为两期来讲解…...

HTML5期末考核大作业、HTML个人主页界面设计源码

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…...

计算机毕业设计Java酒店信息管理(源码+系统+mysql数据库+lw文档)

计算机毕业设计Java酒店信息管理(源码系统mysql数据库lw文档) 计算机毕业设计Java酒店信息管理(源码系统mysql数据库lw文档)本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前端技术&#xff1a;La…...

ARM 汇编编写 LED 灯

一、一步步点亮LED 1. 硬件工作原理及原理图查阅 LED 本身有 2 个接线点&#xff0c;一个是 LED 的正极&#xff0c;一个是 LED 的负极。LED 这个硬件的功能就是点亮或者不亮&#xff0c;物理上想要点亮一颗 LED 只需要给他的正负极上加正电压即可&#xff0c;要熄灭一颗 LED…...

用python编写远程控制程序

1.前言 远程控制是网络安全的一个极为重要的内容&#xff0c;无论是网络安全的维护者还是破坏者都会对此进行研究。维护者的目标是保证远程控制的安全&#xff0c;而破坏者的目标是希望能够凭借各种手段实现对目标设备的远程控制。 本文主要研究三个内容。 1.如何编写一个基于…...

安装docker,docker-compose

安装docker,docker-composeLinux时间不对ARM同步时间X86同步时间centos8更换源安装dockerARM安装dockerX86安装dockerdocker设置阿里镜像源docker 下载拉取报错安装docker-composeARM X86安装docker-composemac安装docker-composeLinux时间不对 ARM同步时间 # 安装chrony yum…...

一文带你深入理解【Java基础】· 泛型

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…...

RabbitMQ学习笔记

目录 尚硅谷mq视频学习笔记 1.1. MQ 的相关概念 1.1.1. 什么是MQ 1.1.2. 为什么要用MQ 1.1.3. MQ 的分类 1.ActiveMQ 2.Kafka 3.RocketMQ 4.RabbitMQ 1.1.4. MQ 的选择 1.Kafka 2.RocketMQ 3.RabbitMQ 1.2. RabbitMQ 1.2.1. RabbitMQ 的概念 1.2.2. 四大核心概念…...

Java安全-CC1

CC1 这里用的是组长的链子和yso好像不太一样&#xff0c;不过大体上都是差不多的。后半条的链子都是一样的&#xff0c;而且这条更短更易理解。yso的CC1过段时间再看一下。 环境 Maven依赖&#xff1a; <dependencies><dependency><groupId>commons-colle…...

【得到日期对象NSDate的各个部分 Objective-C语言】

一、得到日期对象NSDate的各个部分,年月日时分秒 1.例如,我这儿有1个NSDate对象, NSDate *date = [NSDate date]; 这个日期里面是不是有年、有月、有日、有时、有分、有秒 我想单独的拿到这个日期里面的年,该怎么拿 用date.year属性,行吗,不行,因为没有这个属性 用…...

前端面试常考 | CSS垂直居中解决方案

文章目录一. 前言二. flx布局实现三. Grid布局实现四. 绝对定位transform五. 绝对定位负margin五. 绝对定位calc六. 定位加margin一. 前言 前段时间刷到一篇帖子&#xff0c;说面试竟然遇到了CSS的考点&#xff0c;让回答CSS实现垂直居中的方式有哪些?&#xff0c;都2022年了…...

Flink中的UDF的实现

Flink 的 Table API 和 SQL 提供了多种自定义函数的接口&#xff0c;以抽象类的形式定义。当前 UDF 主要有以下几类&#xff1a; 标量函数&#xff08;Scalar Functions&#xff09;&#xff1a;将输入的标量值转换成一个新的标量值&#xff1b;表函数&#xff08;Table Funct…...

Linux教程

Linux 目录结构 /bin&#xff1a;&#xff08;binary&#xff09;存放的是一些二进制文件&#xff0c;但是在Linux中二进制文件是可以被执行的。这个目录中的命令文件是给普通用户使用&#xff08;非超级管理员用户&#xff09;。 /etc&#xff1a;Linux下所有的配置文件都会…...

1.3 Apache Hadoop的重要组成-hadoop-最全最完整的保姆级的java大数据学习资料

文章目录1.3 Apache Hadoop的重要组成1.3 Apache Hadoop的重要组成 HadoopHDFS(分布式文件系统)MapReduce(分布式计算框架)Yarn(资源协调框架)Common模块 Hadoop HDFS&#xff1a;&#xff08;Hadoop Distribute File System &#xff09;一个高可靠、高吞吐量的分布式文件系统…...

【蓝桥杯】第十四届模拟赛第一期及第二期填空汇总

目录 1.A题&#xff08;进制位数&#xff09; 位运算符 第一期 问题描述 解析 第二期 解析 代码 2.B题&#xff08;日期问题&#xff09; 第一期 问题描述 解析 代码实现 执行结果 第二期 问题描述 解析 3.C题&#xff08;数学问题&#xff09; 第一期 问题…...

Go学习之路-环境搭建

默认运行设备系统&#xff1a;MacOS 安装 安装包下载地址&#xff08;下面3个都可以&#xff09;&#xff1a; https://studygolang.com/dl https://golang.google.cn/dl/ https://golang.org/dl/ 我这里选择 pkg包、一键安装、默认的安装路径 /usr/local/go 环境 设置go语言…...

Siamese Neural Network (SNN: 孪生神经网络)

【学习参考】&#xff1a; https://blog.csdn.net/MyArrow/article/details/122539749https://blog.csdn.net/MyArrow/article/details/122539749 Siamese network 孪生神经网络--一个简单神奇的结构 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/35040994 【Siamese和Ch…...

22个每个程序员都应该知道的 Git 命令

在这篇文章中&#xff0c;我写了一个快速学习 git 命令的备忘单。它将包括开发人员每天使用的命令&#xff0c;如 git add、git commit、git pull、git fetch&#xff0c;并共享其他有用的 git 命令。 我一直使用Git的一些命令&#xff0c;今天这个列表清单&#xff0c;希望也…...

Android动画——使用动画启动Activity

1、使用动画启动Activity概述 我们在Android开发应用时&#xff0c;会遇到一个页面跳转到另一个页面的情况&#xff0c;这时候我们如果使用动画过渡会使得页面更加的流畅。这是一个滑动式的进入和退出的动画可以看到Android的过渡动画可以在不同状态之间建立视觉联系。您可以为…...

【YOLO系列改进NO.46】改进激活函数为ACON

文章目录 前言一、解决问题二、基本原理三、​添加方法四、总结前言 作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv7的如何改进进行详细…...

JavaScript -- 09. 内置对象的介绍

文章目录内置对象1 解构赋值1.1 保留默认值1.2 接受剩余的所有参数1.3 对函数执行结果解构1.4 交换两个变量的值1.5 二维数组结构2 对象的解构2.1 声明对象同时解构对象2.2 先声明再解构2.3 解构不存在的属性2.4 设置解构别名2.5 设置解构默认值3 对象的序列化3.1 对象的序列化…...

Spring核心与设计思想

⭐️前言⭐️ 这篇文章作为Spring篇目的开篇&#xff0c;带领大家认识Spring&#xff0c;知道为什么要用Spring框架&#xff0c;以及了解Spring的核心与设计思想。 &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【Jav…...

Java的字符串String

文章目录什么是字符串String类的声明为什么我们的String是不可变的为什么String类用final修饰String的创建字符串比较相等关于Java中的比较关于字符串不同赋值操作对应的内存分配那对象如何进行比较内容字符串常量池StringTalbe的位置字符串常见的操作拼接操作获得字符串的子串…...

net-java-php-python-网络安全教育学习网站计算机毕业设计程序

net-java-php-python-网络安全教育学习网站计算机毕业设计程序 net-java-php-python-网络安全教育学习网站计算机毕业设计程序本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前端技术&#xff1a;…...

js设计模式--观察者模式

概述 观察者模式用于在对象之间建立 一对多 的依赖关系&#xff0c;当一个对象状态发生变化时&#xff0c;它的所有依赖者&#xff08;观察者&#xff09;都会收到通知并自动更新。在js中&#xff0c;观察者模式通常由两个角色组成&#xff1a;主体&#xff08;Subject&#x…...

python:画折线图

import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties# 设置新宋体字体的路径 font_path D:/reportlab/simsun/simsun.ttf# 加载新宋体字体 prop FontProperties(fnamefont_path)""" # 读取 xlsx 文件 d…...

HTML5 Canvas发光Loading动画特效源码

源码介绍 之前我们分享过很多基于CSS3的Loading动画效果&#xff0c;相信大家都很喜欢。今天我们要来分享一款基于HTML5 Canvas的发光Loading加载动画特效。Loading旋转图标是在canvas画布上绘制的&#xff0c;整个loading动画是发光3D的视觉效果&#xff0c;HTML5非常强大。 …...

生成式人工智能岗位探析

笔者近期看到一则新闻&#xff1a;生成式人工智能岗位需求暴涨超 300%&#xff0c;AIGC 相关岗位的平均招聘年薪达 40 万元以上。到底什么是生成式人工智能岗位&#xff0c;和传统的人工智能岗又有什么区别呢&#xff1f;笔者今天想和大家一起聊聊这个新兴岗位。 第一波先上概…...

dockerFile指令

dockerFile是用来构建镜像的文本文件,文本内容包含了构建镜像需要的各种指令&#xff0c;一个命令是就是镜像的一层 DockerFile的基本指令 FROM 镜像起始的基础镜像&#xff0c;后续命令的操作都是基于这个镜像来操作的 例子&#xff1a; FROM java:8 以java8为基础镜像 RUN …...

BurpSuite软件的介绍以及下载

BurpSuite是一个用于攻击web应用程序的集成平台&#xff0c;它包含了许多工具&#xff0c;这些工具可以协同工作&#xff0c;有效地分享信息&#xff0c;并支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具包括但不限于&#xff1a; Proxy&#xff08;代…...

深入浅出JavaScript继承机制:解密原型、原型链与面向对象实战攻略

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f525; 引言&#x1f9f1; 原型基础⛓️ 原型链的形成&#x1f504; 修改原型的影响&#x1f3c1; 原型链的尽头为什么null标志着结束&#xff1f;实际意义 &#x1f310; &#x1f504; 继承的实现方式1. 原型链继承…...

Java算法-力扣leetcode-14. 最长公共前缀

14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a; strs ["flower","flow","flight"] 输出&#xff1a; "fl"示…...

数据库查询--条件查询

目录 1.关系运算条件的查询 2.逻辑运算符条件的查询 3.带关键字IN的查询 4.带BETWEEN AND关键字的查询 5.空值查询 6.带LIKE关键字的模糊查询 1.关系运算条件的查询 在SELECT语句中&#xff0c;最常见的是使用WHERE字句指定关系运算条件对数据进行过滤。 语法格式&#x…...

安卓开发--环境配置

本次项目选择使用 Andrio Studio 进行开发。虽然这款软件版本更新也很快。不过开发一款APP的技术流程是大差不差的。我几年前的安卓笔记放到现在还是能用。 现在CSDN网上写一个笔记留作以后参考&#xff0c;开始吧&#xff01;&#xff01;&#xff01; 1 安装 Andrio Studio …...

AI问答-供应链管理:供应链管理中涉及哪些授权/不同企业角色之间有哪些授权关系

一、供应链管理中涉及哪些人员角色/企业角色 AI问答-供应链管理&#xff1a;都有哪些人员角色 / 企业角色-CSDN博客 二、供应链管理中涉及哪些常见的授权 序号授权名称理解1产品制造授权产品制造授权是指商品的制造商获得品牌所有者的授权&#xff0c;来生产和销售特定品牌的…...

C++包装内置容器项目实战

问题1&#xff1a;template<class _Ty,class _Container set<_Ty> >用法 这里给出了一个模板类模板参数的定义&#xff0c;其中有两个模板参数&#xff1a;_Ty 和 _Container。这个模板类可以用来创建一个容器&#xff0c;其中存储的元素类型是 _Ty&#xff0c;容…...