容器编排学习(一)k8s集群管理
一 Kubernetes
1 概述
就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的一一编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理就在这个时候,kubernetes出现了
kubernetes的名字来自希腊语,意思是舵手或领航员k8s是将k和s之间的8个字母ubernete替换为8的缩写
k8s的创造者,是众人皆知的行业巨头一Google。k8s并不是一件全新的发明,他是Google10多年大规模容器管理技术Borg的开源版本。2014年6月k8s由Google公司正式公布出来并宣布开源
k8s 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、自维护等功能
2 核心架构
master (管理节点)
- 提供集群的控制
- 对集群进行全局决策
- 检测和响应集群事件
核心组件
API Server
- 是整个系统的对外接口,供客户端和其它组件调用
- 后端元数据存储于etcd中(键值数据库)
Scheduler
- 负责对集群内部的资源进行分配和调度
ControllerManager
- 负责管理控制器,相当于大总管
etcd
- 存储kubernetes在运行过程中产生的所有元数据
服务端口
软件工具包
kubeadm:集群配置工具
kubelet:管理pod,在集群中的每个节点上启动
kubectl:用来与集群通信的命令行工具
contained:容器管理软件(Runtime)
ipvsadm:集群管理工具
iproute-tc:网络流量管理工具
node (计算节点)
- 运行容器的实际节点
- 提供运行环境
- 在多个节点上运行
- 水平扩展
Node核心组件
Kubelet
- 负责监视Pod、包括创建、修改、删除等
Kube-proxy
- 主要负责为Pod对象提供代理
- 实现service的通信与负载均衡
Runtime
- 容器管理(contained )
image (镜像仓库)
- 存储镜像
- 为节点提供镜像支持
仓库组件:Registry 或 Harbor
二 calico
1 概述
在虚拟化平台中,比如 OpenStack、Docker 等都需要实现workloads 之间互连,但同时也需要对容器做隔离控制,设置访问策略,calico 就可以解决以上所有问题
calico 可以让不同节点上的容器实现互联互通,同时也可以设置访问策略,它是一种容器之间网络互通的解决方案
2 优势
更节约资源:Calico 使用的三层路由方法,抑制二层广播减少了资源开销,并且具有可扩展性。
更容易管理:因为没有隧道,意味着 workloads 之间路径更短更简单,配置更少,更容易管理
更少的依赖: Calico 仅依赖三层路由可达
适配性广:较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。
三 kubeadm
常用选项
命令选项 | 命令说明 |
help | 命令帮助信息 |
version | 版本信息 |
config | 镜像管理命令 |
init | 集群初始化命令 |
reset | 还原、删除集群配置 |
join | 计算节点加入集群 |
token | token凭据管理 |
四 集群管理命令
kubectl 是用于控制 Kubernetes 集群的命令行工具
1 语法格式
kubectl [command] [TYPE] [NAME] [flags]
command:子命令,如create,get,describe,delete
type:资源类型,可以表示为单数,复数或缩写形式
name:资源名称,如果省略,则显示所有资源信息
flags:指定可选标识或附加的参数
2 集群信息管理命令
子命令 | 说明 | 备注 |
---|---|---|
help | 用于查看命令及子命令的帮助信息 | |
cluster-info | 显示集群的相关配置信息 | |
version | 查看服务器及客户端的版本信息 | |
api-resources | 查看当前服务器上所有的资源对象 | |
api-versions | 查看当前服务器上所有资源对象的版本 | |
config | 管理当前节点上kubeconfig 的认证信息 |
help
# 查看帮助命令信息
[root@master ~]# kubectl help version
Print the client and server version information for the current context.Examples:# Print the client and server versions for the current contextkubectl version
... ...
cluster-info
# 查看集群状态信息
[root@master ~]# kubectl cluster-info
Kubernetes control plane is running at https://192.168.1.50:6443
CoreDNS is running at https://192.168.1.50:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
version
# 查看服务端与客户端版本信息
[root@master ~]# kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:58:30Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:51:45Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
api-resources
# 查看资源对象类型
[root@master ~]# kubectl api-resources
NAME SHORTNAMES APIVERSION NAMESPACED KIND
bindings v1 true Binding
endpoints ep v1 true Endpoints
events ev v1 true Event
... ...
api-versions
# 查看资源对象版本
[root@master ~]# kubectl api-versions
admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
... ...
config
# 查看当前认证使用的用户及证书
[root@master ~]# kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kubernetes-admin@kubernetes kubernetes kubernetes-admin
# 使用 view 查看详细配置
[root@master ~]# kubectl config view
apiVersion: v1
clusters:
- cluster:certificate-authority-data: DATA+OMITTEDserver: https://192.168.1.50:6443name: kubernetes
contexts:
- context:cluster: kubernetesuser: kubernetes-adminname: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-adminuser:client-certificate-data: REDACTEDclient-key-data: REDACTED
主机管理授权
[root@harbor ~]# vim /etc/hosts
192.168.1.30 harbor
192.168.1.50 master
192.168.1.51 node-0001
192.168.1.52 node-0002
192.168.1.53 node-0003
192.168.1.54 node-0004
192.168.1.55 node-0005
[root@harbor ~]# dnf install -y kubectl
[root@harbor ~]# mkdir -p $HOME/.kube
[root@harbor ~]# rsync -av master:/etc/kubernetes/admin.conf $HOME/.kube/config
[root@harbor ~]# chown $(id -u):$(id -g) $HOME/.kube/config
[root@harbor ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane 24h v1.26.0
node-0001 Ready <none> 22h v1.26.0
node-0002 Ready <none> 22h v1.26.0
node-0003 Ready <none> 22h v1.26.0
node-0004 Ready <none> 22h v1.26.0
node-0005 Ready <none> 22h v1.26.0
五 Pod
1 概述
Pod 就像是豌豆英一样,它由一个或者多个容器组成
Pod 是Kubernetes中最小的管理元素
Pod 是一个服务的多个进程的聚合单位
安同一个 Pod共享网络IP及权限
同一个 Pod 共享主机名称
同一个 Pod 共享存储设备
2 创建过程
为什么要使用Pod?
- 服务之间有相关性
- 启动容器的时候需要初始化或进行相关配置
3 生命周期
Pod 对象自从创建开始至终止的时间范围称为其生命周期,在这段时间中Pod 处在多种不同的状态,并执行相关操作
创建主容器为必需的操作,其他为可选操作(初始化容器启动后钩子、存活性探测、就绪性探测以及终止前钩子等
4 相位状态
Pod的status字段是一个PodStatus的对象,Pod对象总是应该处于其生命进程中以下几个相位 (phase) 之一
Pending | Pod 创建过程中,但它尚未被调度完成 |
Running | Pod中所有容器都已经被创建成功 |
Completed | Pod 所有容器都已经成功终止,并不会被重启 |
Failed | Pod中的所有容器中至少有一个容器退出是非0状态 |
Unknown | 无法正常获取到Pod对象的状态信息 |
3 Pod核心管理命令(一)
子命令 | 说明 | 备注 |
run/create | 创建资源对象 | 可输出资源文件模板 |
get | 查看资源对象的状态信息 | 常用参数: -o 显示格式 |
describe | 查询资源对象的属性信息 | |
logs | 查看容器的报错信息 | 常用参数: -c 容器名称 |
run
# 创建 Pod
[root@master ~]# kubectl run myweb --image=myos:nginx
pod/myweb created# 查询资源对象
[root@master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myweb 1/1 Running 0 3s 10.244.1.3 node-0001[root@master ~]# curl http://10.244.1.3
Nginx is running !
get
语法格式:kubectl get 资源类型 [资源名称] [选项/参数]
常用参数:
-o name 只显示名字
-o wide 显示更加的详细信息
-o yaml 以 Yaml 语法格式显示资源对象
-o json 以 json 语法格式显示资源对象
# 查看 Pod 资源对象
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myweb 1/1 Running 0 10m
# 只查看资源对象的名字
[root@master ~]# kubectl get pods -o name
pod/myweb
# 查看资源对象运行节点的信息
[root@master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myweb 1/1 Running 0 10m 10.244.1.3 node-0001
# 查看资源对象详细信息,Yaml 格式
[root@master ~]# kubectl get pod myweb -o yaml
apiVersion: v1
kind: Pod
metadata:name: myweb
... ...
# 查看名称空间
[root@master ~]# kubectl get namespaces
NAME STATUS AGE
default Active 39h
kube-node-lease Active 39h
kube-public Active 39h
kube-system Active 39h# 查看 kube-system 名称空间中的 Pod 信息
[root@master ~]# kubectl -n kube-system get pods
NAME READY STATUS RESTARTS AGE
etcd-master 1/1 Running 0 39h
kube-apiserver-master 1/1 Running 0 39h
kube-controller-manager-master 1/1 Running 0 39h
kube-scheduler-master 1/1 Running 0 39h
... ...
create
系统命名空间
default 默认的命名空间,不声明命名空间的Pod都在这里
kube-node-lease 为高可用提供心跳监视的命名空间
kube-public 公共数据,所有用户都可以读取它
kube-system 系统服务对象所使用的命名空间
注意:k8s 系统核心服务都运行在 kube-system 名称空间中
语法格式:kubectl create <资源对象> [选项/参数]
# 创建名称空间资源对象
[root@master ~]# kubectl create namespace work
namespace/work created# 查看名称空间
[root@master ~]# kubectl get namespaces
NAME STATUS AGE
default Active 39h
kube-node-lease Active 39h
kube-public Active 39h
kube-system Active 39h
work Active 11s
run
语法格式:kubectl run pod名称 [选项/参数]
# 创建简单 Pod 资源对象
[root@master ~]# kubectl -n work run myhttp --image=myos:httpd
pod/myhttp created# 查询资源对象
[root@master ~]# kubectl -n work get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myhttp 1/1 Running 0 3s 10.244.2.2 node-0002# 访问验证
[root@master ~]# curl http://10.244.2.2
Welcome to The Apache.
describe
语法格式:kubectl describe 资源类型 [资源名称] [选项/参数]
Events 下是事务日志,常用于排错
# 查看资源对象的属性信息
[root@master ~]# kubectl describe pod myweb
Name: myweb
Namespace: default
Priority: 0
Service Account: default
Node: node-0001/192.168.1.51
... ...
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 16m default-scheduler Successfully assigned default/myweb to node-0001Normal Pulled 16m kubelet Container image "myos:nginx" already present on machineNormal Created 16m kubelet Created container mywebNormal Started 16m kubelet Started container myweb# 查看 work 名称空间下的 pod 信息
[root@master ~]# kubectl -n work describe pod myhttp
Name: myhttp
Namespace: work
Priority: 0
Service Account: default
Node: node-0002/192.168.1.52
... ...
logs
语法格式:kubectl logs Pod名称 [选项/参数]
# 访问服务,并查看日志
[root@master ~]# curl http://10.244.1.3/info.php
[root@master ~]# curl http://10.244.2.2/info.php
... ...
# 查看 myweb 日志
[root@master ~]# kubectl logs myweb
2022/11/12 18:28:54 [error] 7#0: *2 open() "/usr/local/nginx/html/info.php" failed (2: No such file or directory), client: 10.244.0.0, server: localhost, request: "GET /info.php HTTP/1.1", host: "10.244.2.12"
# 查看 myhttp 日志
[root@master ~]# kubectl -n work logs myhttp
[root@master ~]#
排错三兄弟
kubectl get、kubectl describe、kubectl logs
4 Pod核心管理命令(二)
子命令 | 说明 | 备注 |
---|---|---|
exec | 在某一个容器内执行特定的命令 | 可选参数: -c 容器名称 |
cp | 在容器和宿主机之间拷贝文件或目录 | 可选参数: -c 容器名称 |
delete | 删除资源对象 | 可选参数: -l 标签 |
exec
语法格式:kubectl exec [选项/参数] Pod名称 --操作命令
常用参数:-it 分配交互式终端
# 在容器内执行命令
[root@master ~]# kubectl exec myweb -- ls
50x.html
index.html
[root@master ~]# kubectl exec -it myweb -- /bin/bash
[root@myweb html]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450inet 10.244.1.3 netmask 255.255.255.0 broadcast 10.244.2.255ether 3a:32:78:59:ed:25 txqueuelen 0 (Ethernet)
... ...
cp
语法格式:kubectl cp [选项/参数] 原文件 目标文件
路径格式:[Pod名称:绝对路径]
# 与容器进行文件或目录传输
[root@master ~]# kubectl cp myweb:/etc/yum.repos.d /root/aaa
tar: Removing leading `/' from member names
[root@master ~]# tree /root/aaa
/root/aaa
├── local.repo
├── Rocky-AppStream.repo
├── Rocky-BaseOS.repo
└── Rocky-Extras.repo0 directories, 4 files
[root@master ~]# kubectl -n work cp /etc/passwd myhttp:/root/mima
[root@master ~]# kubectl -n exec myweb -- ls /root/
mima
delete
集群中所有资源均可使用 delete 命令删除
语法格式:kubectl delete [选项/参数] 资源类型 资源名称
# 删除资源对象
[root@master ~]# kubectl delete pods myweb
pod "myweb" deleted# 删除 work 名称空间下所有 Pod 对象
[root@master ~]# kubectl -n work delete pods --all
pod "myhttp" deleted# 删除名称空间
[root@master ~]# kubectl delete namespaces work
namespace "work" deleted
六 资源对象文件
1 概述
k8s中把可以创建或配置的应用和服务称为资源对象。Kubernetes 对象是“目标性记录”,使用这些对象去表示整个集群的状态。我们在集群中创建的 Pod、负载均衡、存储、网络服务等等都是资源对象,创建 Kubernetes 对象时,必须提供资源对象的一些基本信息(例如:资源的对象的名字),以及描述描述该对象的期望状态特征(规约),如果我们在文件中使用 Yaml 的语法格式描述了上面的信息,这个文件就是资源对象文件
为什么要使用资源对象文件?
- 命令无法持久化,没有历史记录,不方便重现
- 服务众多,多个容器之间有关联性,管理不方便
- 很多高级的复杂的功能靠简单的命令方式无法实现,这些都需要使用资源文件描述
2 作用
可以创建、删除、变更、管理资源对象
3 创建
简单资源对象可以使用“kubectI”直接创建
高级资源对象需要使用“资源对象文件”创建
4 最简单的资源对象文件
[root@master ~]# vim myweb.yaml
--- # Yaml文件起始标志
kind: Pod # 当前创建资源的类型
apiVersion: v1 # 当前资源对应的版本
metadata: # 属性信息,元数据name: myweb # 属性信息,资源的名称
spec: # 资源的特定描述containers: # 容器资源的特定描述- name: webserver # 容器的名称image: myos:nginx # 启动容器使用的镜像
status: {} # 资源状态,运行后自动生成
5 静态Pod
静态 Pod 是由 kubelet 守护进程直接管理的 Pod,不需要AP|服务器监管。与由控制面管理的 Pod 不同
kubelet 监视每个静态 Pod(在它崩溃之后重新启动)
静态 Pod 永远都会绑定到一个指定节点上的 Kubelet
静态Pod的spec不能引用其他 API对象
静态 Pod 配置路径: /var/lib/kubelet/config.yaml
6 资源文件管理命令
子命令 | 说明 | 备注 |
---|---|---|
create | 创建文件中定义的资源 | 支持指令式和资源对象文件配置 |
apply | 创建(更新)文件中定义的资源 | 只支持资源对象文件(声明式) |
delete | 删除文件中定义的资源 | 支持指令式和资源对象文件配置 |
注意:删除Pod后kubelet会自动重建Pod,删除资源文件才能彻底删除Pod
列如:rm -f /etc/kubernetes/manifests/myweb.yaml
命令语法:kubectl [create|apply|delete] -f 资源文件名称.yaml
create
# 创建资源对象
[root@master ~]# kubectl create -f myweb.yaml
pod/myweb created
# 不能更新,重复执行会报错
[root@master ~]# kubectl create -f myweb.yaml
Error from server (AlreadyExists): error when creating "myweb.yaml": pods "myweb" already exists
delete
# 使用资源对象文件删除
[root@master ~]# kubectl delete -f myhttp.yaml
pod "myhttp" deleted
[root@master ~]# kubectl get pods
No resources found in default namespace.
apply
# 创建资源对象
[root@master ~]# kubectl apply -f myweb.yaml
pod/myweb created
# 更新资源对象
[root@master ~]# kubectl apply -f myweb.yaml
pod/myweb configured
# 删除资源对象
[root@master ~]# kubectl delete -f myweb.yaml
pod "myweb" deleted# 拓展提高
# 与 kubectl apply -f myweb.yaml 功能相同
[root@master ~]# cat myweb.yaml |kubectl apply -f -
相关文章:
![](https://img-blog.csdnimg.cn/98dbf341637349b5aacf0fb58db2048b.png)
容器编排学习(一)k8s集群管理
一 Kubernetes 1 概述 就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的一一编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
js去除字符串空格的几种方式
方法1:(最常用)全部去除掉空格 var str abc d e f g ; function trim(str) { var reg /[\t\r\f\n\s]*/g; if (typeof str string) { var trimStr str.replace(reg,); } console.lo…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring 自带工具——URI 工具UriComponentsBuilder
UriComponentsBuilder 是 Spring Framework 提供的一个实用工具类,用于构建 URI(Uniform Resource Identifier)。URI 是用于标识和定位资源的字符串,例如 URL(Uniform Resource Locator)就是一种特殊的 URI…...
![](https://img-blog.csdnimg.cn/67a37f32236f4842a38dbb886bbbddca.png)
优化案例5:视图目标列改写优化
优化案例5:视图目标列改写优化 1. 问题描述2. 分析过程2.1 目标SQL2.2 解决思路1)效率低的执行计划2)视图过滤性3)查看已有索引定义 2.3 视图改写2.4 增添复合索引 3. 优化总结 DM技术交流QQ群:940124259 1. 问题描述…...
![](https://img-blog.csdnimg.cn/a99d43ed2efe4489a1532d68b48b9fe9.png)
Origin绘制彩色光谱图
成果图 1、双击线条打开如下窗口 2、选择“图案”-》颜色-》按点-》映射-》Wavelength 3、选择颜色映射 4、单击填充-》选择加载调色板-》Rainbow-》确定 5、单击级别,设置成从370到780,右侧增量选择2(越小,颜色渐变越细腻&am…...
![](https://www.ngui.cc/images/no-images.jpg)
项目复盘:从实践中学习
引言 在我们的工作生涯中,每一个项目都是一次学习的机会。项目复盘是对已完成项目的全面评估,旨在理解我们做得好的地方,以及需要改进的地方。这篇文章将分享我们如何进行项目复盘,以及我们从中学到了什么。 项目背景 在我们开…...
![](https://img-blog.csdnimg.cn/2a3be193d72d48e4a7959feac652112d.png)
机器学习和数据挖掘02-Gaussian Naive Bayes
概念 贝叶斯定理: 贝叶斯定理是概率中的基本定理,描述了如何根据更多证据或信息更新假设的概率。在分类的上下文中,它用于计算给定特征集的类别的后验概率。 特征独立性假设: 高斯朴素贝叶斯中的“朴素”假设是,给定…...
![](https://www.ngui.cc/images/no-images.jpg)
【面试题精讲】Java Stream排序的实现方式
首发博客地址 系列文章地址 如何使用Java Stream进行排序 在Java中,使用Stream进行排序可以通过sorted()方法来实现。sorted()方法用于对Stream中的元素进行排序操作。具体实现如下: 对基本类型元素的排序: 使用sorted()方法对Stream进行排序…...
![](https://img-blog.csdnimg.cn/f800035c08e941adad754ab0f25ef9e2.png)
浅谈Spring
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。 一、什么是IOC? IoC Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器。 1.1控制反转推导 这个控制反转怎…...
![](https://img-blog.csdnimg.cn/4a67fa7ba7ea4a11a7e331911e23cdaa.png)
Java 复习笔记 - 面向对象进阶篇
文章目录 一,Static(一)Static的概述(二)静态变量(三)静态方法(四)工具类(五)static的注意事项 二,继承(一)继…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
微信小程序中识别html标签的方法
rich-text组件 在微信小程序中有一个组件rich-text可以识别文本节点或是元素节点 具体入下: //需要识别的数据放在data中,然后放在nodes属性中即可 <rich-text nodes"{{data}}"></rich-text>详情可以参考官方文档:https://developers.weixin.qq.com/mi…...
![](https://img-blog.csdnimg.cn/4255b5807583406183764678a40a1991.png)
02_常见网络层协议的头结构
1.ARP报文的报文结构 ARP首部的5个字段的含义: 硬件类型:值为1表示以太网MAC地址。 协议类型:表示要映射的协议地址类型,0x0800 表示映射为IP地址。 硬件地址长度:在以太网ARP的请求和应答中都是6,表示M…...
![](https://www.ngui.cc/images/no-images.jpg)
ChatGLM学习
GLM paper:https://arxiv.org/pdf/2103.10360.pdfchatglm 130B:https://arxiv.org/pdf/2210.02414.pdf 前置知识补充 双流自注意力 Two-stream self-attention mechanism(双流自注意机制)是一种用于自然语言处理任务的注意力机制…...
![](https://www.ngui.cc/images/no-images.jpg)
Flink之Watermark
1.乱序问题 流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的,虽然大部分情况下,流到operator的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络、分布式等原因࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
二轮平衡小车3:PID速度环
使用芯片:STM32 F103 C8T6 今日继续我的二路平衡小车开发之路,今日编写的是二轮平衡小车的PID速度环,我准备了纸飞机串口助手软件来辅助测试调节PID。 本文主要贴代码,之前的文章都有原理,代码中相应初始化驱动部分也…...
![](https://img-blog.csdnimg.cn/dc876b51373c4b3f8975d0dd03e8e8c1.png)
C语言之练习题
欢迎来到我的世界 希望这篇文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 目录 前言编程题第一题:珠玑妙算第二题:寻找奇数第三题:寻找峰值第四题:数对 总结 前言 这是暑假题目的收尾文章&am…...
![](https://img-blog.csdnimg.cn/img_convert/917631c2bf40b718817b9545cb690ff4.png)
没钱,没人,没经验?传统制造型企业如何用无代码实现转型
2023年,国家市场监督管理总局发布了三项重要标准,包括《工业互联网平台选型要求》、《工业互联网平台微服务参考框架》和《工业互联网平台开放应用编程接口功能要求》。这些标准的发布对于完善工业互联网平台标准体系,提升多样化工业互联网平…...
![](https://www.ngui.cc/images/no-images.jpg)
CentOS ARM 部署 kubernetes v1.24.6
1.背景 之前安装的kubernetes版本为v1.19.0 树莓派使用(CentOS7.9 armv71 Kubernetes1.19.0), 由于版本过低,一些HPA相关的功能支持不是特别好,因此需要将版本升级,本次会将版本升级为v1.24.6. 2. 如何upgrade 2.1. 优雅升级 kubeadm自带…...
![](https://img-blog.csdnimg.cn/img_convert/db8248d35ada46927475891bd65798af.jpeg)
LeetCode 725. Split Linked List in Parts【链表】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
![](https://img-blog.csdnimg.cn/de4fba3733ee48c5a7036d6adff6824f.png#pic_center)
云计算中的负载均衡技术,确保资源的平衡分配
文章目录 1. 硬件负载均衡器2. 软件负载均衡器3. DNS负载均衡4. 内容分发网络(CDN) 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内…...
![](https://www.ngui.cc/images/no-images.jpg)
探索 SOCKS5 代理在跨境电商中的网络安全应用
随着全球化的发展,跨境电商成为了商业界的一颗新星,为企业提供了无限的发展机遇。然而,随之而来的是网络安全的挑战,特别是在处理国际网络流量时。在这篇文章中,我们将探讨如何利用 SOCKS5 代理和代理 IP 技术来加强跨…...
![](https://img-blog.csdnimg.cn/6fcedceef1864b46ae931d84ed1f1781.png)
全网独家:编译CentOS6.10系统的openssl-1.1.1多版本并存的rpm安装包
CentOS6.10系统原生的openssl版本太老,1.0.1e,不能满足一些新版本应用软件的要求,但是它又被wget、mysql-libs、python-2.6.6、yum等一众系统包所依赖,不能再做升级。故需考虑在不影响系统原生openssl的情况下,安装较新…...
![](https://www.ngui.cc/images/no-images.jpg)
【go】异步任务解决方案Asynq实战
文章目录 一.Asynq介绍二.所需工具三.代码示例四.Reference 一.Asynq介绍 Asynq 是一个 Go 库,一个高效的分布式任务队列。 Asynq 工作原理: 客户端(生产者)将任务放入队列服务器(消费者)从队列中拉出任…...
![](https://www.ngui.cc/images/no-images.jpg)
掌握 Android 自动化测试框架 UiAutomator UiAutomator2
掌握 Android 自动化测试框架 UiAutomator & UiAutomator2 一、UiAutomator 简介二、UiAutomator2 的诞生三、UiAutomator2 的应用实践总结你是否曾经在进行 Android 应用开发时,对于如何进行全面、有效的自动化测试感到困惑?你是否想要更高效地进行 UI 测试,而不是一遍…...
![](https://www.ngui.cc/images/no-images.jpg)
c#抽象类(abstract)
概述: C#中的抽象类是一种特殊类型的类,它不能被实例化,只能被继承。抽象类用于提供一个共享的基类,其中定义了一些方法和属性的签名,但没有具体的实现。这些方法和属性可以在派生类中进行实现。 使用抽象类的主要目…...
![](https://img-blog.csdnimg.cn/670b00cb21ba42919cf77ce8423345ee.png)
语义分割实践思考记录(个人备忘录)
一、任务管理器、NVDIA的GPU利用率显示[1][2] 若需要在任务管理器中查看基于Pytorch框架的GPU利用率,那么,我们需要将监控面板监测内容调整为cuda。图一(左)即为英伟达命令行工具面板。 图一 英伟达GPU使用率监控 二、基于混淆矩阵…...
![](https://img-blog.csdnimg.cn/img_convert/d0aba61ea5ee9961fcc6411da01a9fad.jpeg)
Zebec Protocol 成非洲利比亚展会合作伙伴,并将向第三世界国家布局
在 9 月 6 日,The Digital Asset Summit ’23(利比亚大会)在尼日利亚首度阿布贾的 NAF 会议中心举办,该会议对 Web3 领域在非洲地区的发展进行了探索,旨在推动非洲地区区块链产业的进一步发展,据悉该会议室…...
![](https://www.ngui.cc/images/no-images.jpg)
随机流-RandomAccessFile
RandomAccessFile RandomAccessFile 基本操作案例 RandomAccessFile 基本操作 案例 import java.io.*;public class TestMain09 {public static void main(String[] args) throws Exception {insert("D:\\home\\product\\aa.txt",2,"ni");}public static…...
![](https://www.ngui.cc/images/no-images.jpg)
单例和静态类
C#中的单例(Singleton)和静态类(Static Class)是两种不同的设计模式,它们各自有不同的用途和特点。 单例模式是一种设计模式,它确保一个类只有一个实例,并提供全局访问点。通常,单例…...
![](https://www.ngui.cc/images/no-images.jpg)
PMP-项目风险管理的重要性
一、什么是项目风险管理 项目风险管理旨在识别和管理未被其他项目管理过程所管理的风险。如果不妥善管理,这些风险有可能导致项目偏离计划,无法达成既定的项目目标。因此,项目风险管理的有效性直接关乎项目成功与否。 每个项目都在两个层面…...
做网站违反广告法/关键词优化报价推荐
一、理解什么是MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。 MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java…...
![](https://img-blog.csdnimg.cn/img_convert/d672bfaaab47765eab960a6af591540e.png)
张家口做网站哪家好/我想注册一个网站怎么注册
欢迎观看indesign教程,小编带大家学习 InDesign 的基本工具和使用技巧,了解如何使用“链接”面板链接图形。 默认情况下,在InDesign中放置图形时,图形将链接到InDesign外部的原始图形文件。这样文档文件的大小更小,并…...
![](/images/no-images.jpg)
独立站建站东莞/成都网络推广中联无限
GetModuleHandle功能说明 获取一个应用程序或动态链接库的模块句柄 (前提是:只有欲获取的模块已映射到调用该函数的进程内,才会正确得到模块句柄。常用模块映射函数:LoadLibrary(..)。)HMODULE GetModuleHandle ( L…...
![](/images/no-images.jpg)
承德做网站/友情链接英文
1.首先安装好LAMP这一个组合,在安装的过程中重点关注PHP的安装./configure --prefix/usr/local/php5 --enable-mbstring--with-apxs2/usr/local/apache2/bin/apxs--with-mysql/usr/local/mysql--with-config-file-path/usr/local/php5--with-zlibmake ;make install…...
![](/images/no-images.jpg)
app资源网站开发/排名优化公司
1.通用 属性操作 1.对HTML代码的操作 jQuery 对象.html([content]); 如果存在参数content,表示给选中的元素赋上新的内容content;如果不存在参数content,表示获取被选中的元素内容。 2.对文本内容的操作 jQuery 对象.text([content]); …...
![](https://s4.51cto.com/wyfs02/M02/86/BA/wKioL1fI2mjxmw6SAAANPpMXo04180.png)
好听的建筑公司名字大全/搜索引擎优化seo培训
安装PHPStudy2014,打开端口出现80端口 PID4 进程:System后来发现原来是我本地电脑安装了SQL SERVER 2008R2占用了端口,把它Reporting Services停止后就正常了:转载于:https://blog.51cto.com/myjieli/1845461...