创建网站超市/广州关键词快速排名
kubernetes 使用1.31.1 版本搭建集群核心组件,选择flannel 网络插件为整体集群的运行提供网络通信功能。
flannel 网络插件
kube-flannel kube-flannel-ds-9fgml 1/1 Running 1 (18m ago) 2d21h
kube-flannel kube-flannel-ds-ghwbq 1/1 Running 1 (18m ago) 2d21h
kube-flannel kube-flannel-ds-mkm4r 1/1 Running 1 (18m ago) 2d21h
K8S核心组件:
1、coredns提供集群内的DNS解析
kube-system coredns-fcd6c9c4-cvcvt 1/1 Running 1 (18m ago) 2d21h
kube-system coredns-fcd6c9c4-m9kxk 1/1 Running 1 (18m ago) 2d21h
2、ectd (基于键值对的数据库) 提供集群数据的存储(1) pod的名称数量(2)网络参数的分配(3)集群的状态
kube-system etcd-control 1/1 Running 1 (18m ago) 2d21h
3、api-server:Kubernetes的api响应服务器,用户向K8S平台发出的所有指令,都是先给到api-server,由APIserver 根据用户的请求以调用不同的组件
kube-system kube-apiserver-control 1/1 Running 1 (18m ago) 2d21h
4、controller-manager:完成pod的启动和状态维护,比如pod停止了,由controller-manager 完成pod的重启
kube-system kube-controller-manager-control 1/1 Running 1 (18m ago) 2d21h
5、kube-proxy:K8s的代理服务
kube-system kube-proxy-54j4f 1/1 Running 1 (18m ago) 2d21h
kube-system kube-proxy-c8cdj 1/1 Running 1 (18m ago) 2d21h
kube-system kube-proxy-v7td8 1/1 Running 1 (18m ago) 2d21h
6、scheduler-control: 调度管理器,决定K8S中运行pod的节点,指定pod的运行节点。
kube-system kube-scheduler-control 1/1 Running 1 (18m ago) 2d21h
pod
pod 是K8S平台上最小的管理单位,pod是K8S平台上运行的进程。
什么是容器?应用容器化的本质是什么?
容器是一个隔离的沙盒环境。容器实现隔离环境所使用的技术是namespace (名称空间)cgroup (控制组)。沙盒环境中包括了运行某一个应用所需要的基本依赖关系和运行的环境(配置文件、日志输出、启动程序等)。一个应用的镜像包括了应用运行所需要的所有的依赖管理和运行环境的支持。应用容器化的本质分为两步:1.将应用运行需要的所有文件打包,制作镜像2. 将镜像中的程序启动(运行起来),程序运行起来之后,就是进程了,换一句叫做运行容器,或者跑一个容器。
总结一下: 容器实际就是在操作系统上使用软件技术隔离一个环境,然后运行程序的过程。所以在容器宿主机上,在容器内部只能看到容器内部启动的进程,举个例子:容器中通常有一个pid为1 的进程,而这个进程不是容器宿主机中pid为1 的进程,容器宿主机中可以看到容器启动的进程,但是并不知道容器具体使用哪个程序启动对应的进程。
pod的重点类似于容器,也是需要在一个相对隔离的环境下启动进程,并为隔离环境中的进程提供需要的网络、存储等资源的访问。但是pod并不是容器,pod提供容器所需要的隔离环境,并为隔离环境内的容器提供必要的网络和存储,所以某种程度上pod 是用来管理容器的上一级概念。
在K8S中,一个pod=一个运行中的应用实例
pod运行容器的方式:
- 一个pod中封装一个容器,最简单的运行方式,但是如果需要较为复杂架构的实现,还是需要较为复杂的配置过程。
- 一个pod中封装多个容器:可以直接在一个pod中运行所有的服务,比如说lamp等常见组合,另一个原因在于同一个pod中的容器直接基于localhost进行通信,也不需要复杂的网络配置或者繁琐的数据同步。
K8S 资源对象:
- pod (最小调度单位,一定属于某一个名称空间)
- K8S 的名称空间,一般是为了给不同的项目进行项目环境的隔离而使用的概念,
- 类比ansible不同的目录可以代表不同的项目代码,K8S不同的名称空间运行不同的应用
- node (K8S工作节点,应用pod一般都运行在工作节点上,node 不属于任何名称空间,同样持久卷也不属于任何名称空间)
[root@control ~]# kubectl get nodes // 列出节点信息
NAME STATUS ROLES AGE VERSION
control Ready control-plane 3d4h v1.31.1
node1 Ready <none> 3d4h v1.31.1
node2 Ready <none> 3d4h v1.31.1
[root@control ~]# kubectl get nodes -o wide // 列出所有节点基本信息
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
control Ready control-plane 3d4h v1.31.1 192.168.110.10 <none> CentOS Stream 9 5.14.0-474.el9.x86_64 containerd://1.7.22
node1 Ready <none> 3d4h v1.31.1 192.168.110.11 <none> CentOS Stream 9 5.14.0-474.el9.x86_64 containerd://1.7.22
node2 Ready <none> 3d4h v1.31.1 192.168.110.22 <none> CentOS Stream 9 5.14.0-474.el9.x86_64 containerd://1.7.22
[root@control ~]# kubectl describe node control // 列出指定节点的详细信息
以相对动态的方式实时获取每一个节点的基本信息,使用一个K8S的组件 metrics-server 来收集每一个节点的内存CPU 等资源的实时使用率,metrics-server将在api-server 中增加关于节点状态收集的api路径,收集到的节点信息可以传递给其他的监控软件使用。
[root@control ~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
[root@control ~]# cat .kube/registry_cn
registry.cn-hangzhou.aliyuncs.com/google_containers/
[root@control ~]# mv components.yaml metrics-server.yml
mv: overwrite 'metrics-server.yml'? y
[root@control ~]# vim metrics-server.yml
[root@control ~]# kubectl apply -f metrics-server.yml
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
[root@control ~]# kubectl get pods -o wide -n kube-system
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
coredns-fcd6c9c4-cvcvt 1/1 Running 1 (6h52m ago) 3d4h 10.244.1.10 node1 <none> <none>
coredns-fcd6c9c4-m9kxk 1/1 Running 1 (6h52m ago) 3d4h 10.244.1.9 node1 <none> <none>
etcd-control 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.10 control <none> <none>
kube-apiserver-control 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.10 control <none> <none>
kube-controller-manager-control 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.10 control <none> <none>
kube-proxy-54j4f 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.11 node1 <none> <none>
kube-proxy-c8cdj 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.10 control <none> <none>
kube-proxy-v7td8 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.22 node2 <none> <none>
kube-scheduler-control 1/1 Running 1 (6h52m ago) 3d4h 192.168.110.10 control <none> <none>
metrics-server-86c648b4bf-tfhjp 1/1 Running 0 50s 10.244.2.10 node2 <none> <none>
实时监控节点的资源使用情况:
[root@control ~]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
control 170m 8% 1636Mi 43%
node1 60m 3% 1109Mi 29%
node2 47m 2% 1019Mi 13%
对于K8S集群中的工作节点的增加和移除:
增加新的工作节点:
- 配置工作节点的OCI 、selinux等基础环境
- kubeadm join 命令加入到K8S 现有集群中
移除工作节点:
禁止向指定节点调度新的pod
kubectl cordon node 节点名
移除在指定节点上的pod
kubectl drain node 节点名
以上这两步也可以将指定的工作节点进行常规的状态维护
结束常规的技术维护之后,重新加入K8S调度的指令:
kubectl uncordon node 节点名
3、namespace 和用来进行容器环境隔离的namesapce 不是一个层面的东西
kubectl get //列出指定的资源类型
kubectl get pods // 列出所有的pod资源
kubectl get nodes // 列出所有的节点信息
kubectl get namespace // 所有的名称空间
[root@control ~]# kubectl get ns
NAME STATUS AGE
default Active 3d4h // 本身默认的名称空间
kube-flannel Active 3d4h // 创建flannel 网络插件时,创建的专门用于运行网络插件的名称空间
kube-node-lease Active 3d4h // 管理K8S集群节点有限期,属于默认名称空间
kube-public Active 3d4h // 也属于默认的名称空间
kube-system Active 3d4h // 默认名称空间,K8S核心组件资源
4、label 标签/ annotation 备注
5、taint 污点 toleration 容忍
taint 一般设置在工作节点,用来说明节点的一些不适合运行pod的状态
toleration 一般设置在某个pod上,用来说明可以调度到条件适配的有污点的节点。
6、Service // 使用pod运行的应用一个会认为是一个独立的服务
7、Volume // 卷 pod 使用的存储
8、PersistentVolume // 持久卷
9、Deployment // 服务部署 一次需要调度的pod的数量
10、Secret // K8s 加密数据的访问
11、StatefulSet // 有状态的服务部署 网络资源固定分配以及存储资源的持久化
12、DaemonSet // 无状态的服务部署
13、ServiceAccount // 服务装好
14、ReplicationController // 副本控制器
15、ReplicaSet // 副本集控制器,和上一条功能相同 只是版本不同
16、Job // 一个定时作业
17、CronJob // 一个周期作业
18、SecurityContext // 安全上下文
19、ResourceQuota // 资源配额 容器资源限制
20、LimitRange // 范围限制
21、HorizontalPodAutoscaling // pod水平扩展 一般通过RC RS等资源快速实现
22、Ingress // 集成的应用网关,属于一种网络和应用功能的合并资源
23、ConfigMap // 配置映射,一般用来解决卷和持久卷的映射关系
24、Role // 用来进行用户权限约束的资源 K8S平台中不是通过属主属组进行权限划分,而是通过角色划分用户的权限
25、ClusterRole // 对K8S集群本身管理权限的划分
练习参考资料:
使用 Deployment 运行一个无状态应用 | Kubernetes本文介绍如何通过 Kubernetes Deployment 对象去运行一个应用。教程目标 创建一个 nginx Deployment。 使用 kubectl 列举该 Deployment 的相关信息。 更新该 Deployment。 准备开始 你必须拥有一个 Kubernetes 的集群,且必须配置 kubectl 命令行工具让其与你的集群通信。 建议运行本教程的集群至少有两个节点,且这两个节点不能作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:Killercoda 玩转 Kubernetes 你的 Kubernetes 服务器版本必须不低于版本 v1.9. 要获知版本信息,请输入 kubectl version. 创建并了解一个 nginx Deployment 你可以通过创建一个 Kubernetes Deployment 对象来运行一个应用, 且你可以在一个 YAML 文件中描述 Deployment。例如,下面这个 YAML 文件描述了一个运行 nginx:1.14.2 Docker 镜像的 Deployment:application/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 # 告知 Deployment 运行 2 个与该模板匹配的 Pod template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.https://kubernetes.io/zh-cn/docs/tasks/run-application/run-stateless-application-deployment/
部署一个无状态应用到K8S集群
- 目前对于无状态应用的部署通过deployment实现,创建一个deployment 会自动选择RS控制器,创建应用副本数量的控制器。
- rc 作为一种较早的副本控制器,已经不推荐再继续使用
- K8S中的资源不直接通过create 子命令创建,为了更加贴合应用的实际运行环境,K8S对于大部分管理资源的创建都是通过一种叫做声明式配置的文件进行预先配置,然后进行创建。
[root@control ~]# vim nginx-deployment.yml
apiVersion: apps/v1 //K8Sapiserver的路径
kind: Deployment //资源类型 Deployment
metadata: //针对资源的元数据name: nginx-deployment // 设置资源的名称
spec: // 资源具体的参数selector: // 选择器matchLabels: // 匹配标签的值app: nginx // 设定的值replicas: 2 // 告知 Deployment 运行 2 个与该模板匹配的 Pod
// replicas 副本的控制主要是通过relipcaset template: // pod运行的参数metadata:labels: app: nginx // pod 对应的标签spec: // pod中容器对应的参数containers: - name: nginx // 容器名称image: nginx:latest // 容器对应的镜像imagePullPolicy: IfNotPresent // 镜像的拉取策略为节点中没有ports:- containerPort: 80 // nginx容器需要使用80端口通信,pod中的其他容器不能使用80端口
上面的配置文件,会创建一个名为nginx的deployment,这个deployment中需要启动两个pod,pod中是一个使用nginx镜像的容器。
为了避免需要拉取镜像,检查工作节点镜像环境。
[root@node1 ~]# crictl -r unix:///var/run/containerd/containerd.sock images nginx
[root@control ~]# kubectl apply -f nginx-deployment.yml
deployment.apps/nginx-deployment created
[root@control ~]# source .kube/k8s_bash_completion
[root@control ~]# kubectl describe deployments.apps nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Mon, 23 Sep 2024 17:20:07 +0800
Labels: <none>
Annotations: deployment.kubernetes.io/revision: 1
Selector: app=nginx
Replicas: 2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:Labels: app=nginxContainers:nginx:Image: nginx:latestPort: 80/TCPHost Port: 0/TCPEnvironment: <none>Mounts: <none>Volumes: <none>Node-Selectors: <none>Tolerations: <none>
Conditions:Type Status Reason---- ------ ------Available True MinimumReplicasAvailableProgressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-bf56f49c (2/2 replicas created)
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal ScalingReplicaSet 69s deployment-controller Scaled up replica set nginx-deployment-bf56f49c to 2
[root@control ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-nginx-7549dd6888-lhnr6 1/1 Running 1 (9h ago) 3d
my-nginx-7549dd6888-z84x4 1/1 Running 1 (9h ago) 3d
nginx-deployment-bf56f49c-54sxj 1/1 Running 0 3m18s
nginx-deployment-bf56f49c-fjbsc 1/1 Running 0 3m18s
[root@control ~]# kubectl get pods -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-deployment-bf56f49c-54sxj 1/1 Running 0 3m46s
nginx-deployment-bf56f49c-fjbsc 1/1 Running 0 3m46s
[root@control ~]# vim nginx-deployment.yml
[root@control ~]# kubectl apply -f nginx-deployment.yml
deployment.apps/nginx-deployment configured
[root@control ~]# kubectl describe deployments.apps nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Mon, 23 Sep 2024 17:20:07 +0800
Labels: <none>
Annotations: deployment.kubernetes.io/revision: 1
Selector: app=nginx
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:Labels: app=nginxContainers:nginx:Image: nginx:latestPort: 80/TCPHost Port: 0/TCPEnvironment: <none>Mounts: <none>Volumes: <none>Node-Selectors: <none>Tolerations: <none>
Conditions:Type Status Reason---- ------ ------Progressing True NewReplicaSetAvailableAvailable True MinimumReplicasAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-bf56f49c (3/3 replicas created)
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal ScalingReplicaSet 5m41s deployment-controller Scaled up replica set nginx-deployment-bf56f49c to 2Normal ScalingReplicaSet 11s deployment-controller Scaled up replica set nginx-deployment-bf56f49c to 3 from 2
[root@control ~]# kubectl get pods -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-deployment-bf56f49c-54sxj 1/1 Running 0 5m58s
nginx-deployment-bf56f49c-fjbsc 1/1 Running 0 5m58s
nginx-deployment-bf56f49c-q2fbx 1/1 Running 0 28s
[root@control ~]# kubectl scale --replicas=4 deployment nginx-deployment
deployment.apps/nginx-deployment scaled
[root@control ~]# kubectl get pods -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-deployment-bf56f49c-54sxj 1/1 Running 0 7m7s
nginx-deployment-bf56f49c-fjbsc 1/1 Running 0 7m7s
nginx-deployment-bf56f49c-kfr8g 1/1 Running 0 3s
nginx-deployment-bf56f49c-q2fbx 1/1 Running 0 97s
[root@control ~]# kubectl scale --replicas=2 deployment nginx-deployment
deployment.apps/nginx-deployment scaled
[root@control ~]# kubectl get pods -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-deployment-bf56f49c-54sxj 1/1 Running 0 7m28s
nginx-deployment-bf56f49c-fjbsc 1/1 Running 0 7m28s
[root@control ~]# kubectl delete deployments.apps nginx-deployment
或者使用配置文件删除
[root@control ~]# kubectl delete -f nginx-deployment.yml
deployment.apps "nginx-deployment" deleted
相关文章:

Linux——k8s组件
kubernetes 使用1.31.1 版本搭建集群核心组件,选择flannel 网络插件为整体集群的运行提供网络通信功能。 flannel 网络插件 kube-flannel kube-flannel-ds-9fgml 1/1 Running 1 (18m ago) 2d21h kube-flannel kube-flannel-ds-ghwbq …...

基于RustDesk自建远程桌面服务
最近向日葵越来越难用了,官方好像限制了免费用户的带宽,但是限制的有点过头了,卡的基本没法用。 向日葵的平替todesk对于免费用户又有时长限制,对于经常用的小伙伴不大友好。 咱也不是说非得白嫖,但是向日葵和todesk这…...

Devicenet从站数据 转profinet IO项目案例
目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关用DEVICENET协议采集数据 3 5 用PROFINET IO协议转发数据 4 6 案例总结 7 1 案例说明 设置网关采集Devicenet从站设备数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协…...

C语言实现队列
队列 前言一、队列的结构1.实现思路2.代码结构 二、队列的实现1.初始化和销毁2.判空和获取队列大小3.入队列和出队列4.获取队头和队尾元素5.测试 总结每文推荐 前言 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操…...

Python使用scrapy创建项目爬虫步骤
一、安装导入 使用包管理器下载 pip install scrapy 二、创建Scrapy项目 首先需要进入你创建项目的目录下,打开cmd窗口或powershell窗口: scrapy startproject 项目名称(英文) 三、了解项目结构 scrapy.cfg # 项目的配置文件…...

长沙某公司.Net高级开发面试题
1.dot net core跟dot net比较有哪些更好的地方? 第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。 第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。 第三是dot net core处理请求…...

物联网系统中声音拾取音频方案_咪头
01 物联网系统中为什么要使用咪头 物联网系统中使用咪头(麦克风或传声器)的原因主要可以归结为以下几个方面: 声音信号的拾取与转换 基本功能:咪头是一种将声音转换为电信号的装置。在物联网系统中,咪头负责捕捉周围…...

【题解】Codeforces Round 975 (Div. 2) A~E
A. Max Plus Size 分别假设答案为取第偶数位的最大值和取第奇数位的最大值两种情况, 取更优解. 取偶数位的最大值时, 把所有其他都偶数位都取上. 奇数同理. code: int solve(int _) {int n;cin >> n;vector<int>a(n 1);int Maxj 0, Maxo 0;for (int i 1; i …...

如何搞定视频裁剪?新手小白零基础剪辑,分享5个实用工具!
现在是一个短视频盛行的时代,几乎每个人都掌握了视频剪辑技能。 不管是因为工作也好,生活也罢,只要有视频,那么就一定会用到视频剪辑软件。视频裁剪已经难不倒普通人了,借助专业的视频裁剪工具,任何人都可…...

HttpClientHandler 详解及使用
在现代网络编程中,HttpClientHandler 是一个至关重要的组件,它提供了对 HTTP 请求的底层配置和控制。本文将详细介绍 HttpClientHandler 的核心概念、配置选项以及如何在实际应用中使用它。 1. 什么是 HttpClientHandler? HttpClientHandle…...

基于两分支卷积和 Transformer 的轻量级多尺度特征融合超分辨率网络 !
当前的单图像超分辨率(SISR)算法有两种主要的深度学习模型,一种是基于卷积神经网络(CNN)的模型,另一种是基于Transformer的模型。前者利用不同卷积核大小的卷积层堆叠来设计模型,使得模型能够更…...

Font Awesome 手势图标
Font Awesome 手势图标 Font Awesome 是一个广泛使用的图标库,它为网页设计师和开发者提供了一系列高质量的图标。这些图标涵盖了从基本的网页元素到复杂的符号和手势,可以轻松地集成到各种网页和应用中。在本文中,我们将重点介绍 Font Awesome 中的手势图标,探讨它们的应…...

基于Hive和Hadoop的哔哩哔哩网站分析系统
本项目是一个基于大数据技术的哔哩哔哩平台分析系统,旨在为用户提供全面的哔哩哔哩视频数据和深入的用户行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出…...

Augular 学习步骤建议
Angular 是一个由 Google 维护的开源 Web 应用框架,用于开发单页面客户端应用程序。以下是学习 Angular 的建议步骤: 1. 了解基础: 熟悉 HTML、CSS 和 JavaScript 的基础知识。 了解 TypeScript,因为 Angular 应用程序主要使用…...

突破自闭症治疗进展报道:改变孩子和家庭的未来
在这个充满挑战与希望的时代,自闭症这一复杂的神经发育障碍,长久以来一直是无数家庭心中的痛。然而,在星贝育园这片充满爱与科学的土地上,一场关于自闭症治疗的深刻变革正在悄然发生,它不仅为孩子们点亮了未来的希望之…...

我想注册一批账号做矩阵,需要每次注册都切换一个ip吗
在注册一批账号以建立矩阵时,切换IP地址是一个重要的考虑因素,尤其是为了避免被平台识别为同一用户或多重账户,从而减少账号被封的风险。以下是一些建议,帮助你有效管理IP地址和账号注册过程: 1. 切换IP地址的必要性 …...

linux系统的常用命令
微服务Linux解析部署使用全流程 Linux安装vim超详细教程 Linux安装JDK及配置环境变量超详细教程 Linux安装tomcat及配置环境变量超详细教程 目录 1、ls:列出目录内容。 2、cd:改变当前目录。 3、pwd:打印当前工作目录的路径 4、mkdir…...

无锡卓瓷X哲讯智能科技,SAP项目正式启动!
在数字化浪潮的推动下,高精密陶瓷行业的领军企业—无锡卓瓷科技有限公司,携手哲讯智能科技有限公司近期启动SAP&BI项目,以打造行业领先的数字化管理平台。这一战略举措标志着无锡卓瓷在数字化转型的道路上迈出了坚实的一步。 无锡卓瓷—…...

Python从入门到精通-基础篇
1.Python的起源 1989年,为了打发圣诞节假期,Gudio van Rossum(吉多范罗苏姆(龟叔))决心开发一个新的解释程序(Python雏形) 1991年,第一个Python解释器诞生 Python这个…...

系统架构设计师-知识产权与标准化
目录 一、保护范围与对象 二、保护期限 三、知识产权人确定 四、侵权判断 五、标准化 一、保护范围与对象 知识产权是权利人依法就下列课题享有的专有权利: (一)作品(著作) (二)发明、实用…...

Python安装流程(Windows + MAC)
目录 Windows 版 1.下载Python 2.开始安装 3.配置环境变量 4.测试python是否成功安装 MAC版 1.下载Python 2.开始安装 Windows 版 1.下载Python 进入Python官网下载:(Python更新频繁,下载最新版即可,安装流程一致&#x…...

在 Qt 项目中使用 spdlog 的全攻略
目录 1. 准备工作:安装 spdlog 方法一:使用 CMake 的 FetchContent(推荐) 方法二:手动下载并添加到项目中 2. 在 Qt 项目中集成 spdlog a. 初始化 spdlog b. 在 Qt 的各个部分使用 spdlog 3. 基本使用示例 4. …...

vue的el-button防止重复点击
这样效果仅生效在按钮上...

消息中间件 Kafka 快速入门与实战
1、概述 最近感觉上班实在是太无聊,打算给大家分享一下Kafka的使用,本篇文章首先给大家分享三种方式搭建Kafka环境,接着给大家介绍kafka核心的基础概念以及Java API的使用,最后分享一个SpringBoot的集成案例,希望对大…...

【Unity服务】如何使用Unity Version Control
Unity上的线上服务有很多,我们接触到的第一个一般就是Version Control,用于对项目资源的版本管理。 本文介绍如何为项目添加Version Control,并如何使用,以及如何将项目与Version Control断开链接。 其实如果仅仅是对项目资源进…...

C++ --- 静态多态和动态多态
静态多态和动态多态 静态多态动态多态总结 静态多态和动态多态是面向对象编程中多态性的两种主要形式,它们在实现方式、绑定时机以及应用场景上存在一些显著的区别。 静态多态 静态多态,也被称为编译时多态,是指在编译阶段就已经确定了对象调…...

华为vxlan
VXLAN是什么?VXLAN与VLAN之间有何不同? - 华为...

队列及笔试题
队列 先进先出 使用单链表进行队尾插入 队头删除 其中带头结点直接尾插,不带头结点第一次操作要判断一下 但是带头结点需要malloc和free 函数传需要修改的参数方法 1、二级指针 2、带哨兵位的头结点 3、返回值 4、如果有多个值,用结构体封装起来…...

JAVA TCP协议初体验
文章目录 一、需求概述二、设计选择三、代码结构四、代码放送五、本地调试1. 服务端日志2. 客户端日志3. 断线重连日志 六、服务器部署运行1. 源码下载2. 打包镜像3. 运行容器 一、需求概述 最近开发某数据采集系统,系统整体的数据流程图如下: #mermaid…...

sqlserver迁移数据库文件存储位置
业务背景:由于C盘爆满,需要将数据库文件迁移到别处比如D盘 下面以某一个数据库转移为示例:(可以用SSMS工具,新建查询配合使用) 1.查询数据库文件存储路径 sql语句: -- 查询路径 USE QiangTes…...