kubernetes 集群命令行工具 kubectl

1、kubectl 概述

kubectl是一种命令行工具,用于管理Kubernetes集群和与其相关的资源。通过kubectl,您可以查看和管理Pod、Deployment、Service、Volume、ConfigMap等资源,也可以创建、删除和更新它们。

kubectl还提供了许多其他功能,例如:

  1. 查看集群状态、节点列表和事件日志。
  2. 在Pod中执行命令或启动交互式终端。
  3. 管理Secret和ConfigMap。
  4. 部署应用程序、扩展和缩小应用程序副本数量。
  5. 在多个Kubernetes集群之间切换。

kubectl是Kubernetes的核心组件之一,可帮助管理员和开发人员管理和操作Kubernetes集群。

2、kubectl 命令的语法

使用以下语法从终端窗口运行 kubectl 命令:

kubectl [command] [TYPE] [NAME] [flags]

(1)comand:指定要对资源执行的操作,例如 create、get、describe 和 delete

(2)TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的形式。

例如,以下命令输出相同的结果

image-20230808204223356

(3)NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有资源的详细信息

在对多个资源执行操作时,你可以按类型和名称指定每个资源,或指定一个或多个文件

例如

kubectl get nodes

kubectl get nodes node1

image-20230808204246261

(4)flags:指定可选的参数。例如,可用-s 或者–server 参数指定 Kubernetes API server 的地址和端口。

3、kubectl help 获取更多信息

如果你需要帮助,可在终端窗口中运行 kubectl help

具体的语法使用方式可以通过 kubectl 命令的内置帮助文档来查看,例如:

kubectl --help
kubectl [command] --help
kubectl [command] [TYPE] --help
kubectl [command] [TYPE] [NAME] --help

kubectl --help

[root@master ~]# kubectl --help
kubectl controls the Kubernetes cluster manager.Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/Basic Commands (Beginner):create        Create a resource from a file or from stdin.expose        使用 replication controller, service, deployment 或者 pod 并暴露它作为一个 新的 Kubernetes
Servicerun           在集群中运行一个指定的镜像set           为 objects 设置一个指定的特征Basic Commands (Intermediate):explain       查看资源的文档get           显示一个或更多 resourcesedit          在服务器上编辑一个资源delete        Delete resources by filenames, stdin, resources and names, or by resources and label selectorDeploy Commands:rollout       Manage the rollout of a resourcescale         Set a new size for a Deployment, ReplicaSet or Replication Controllerautoscale     自动调整一个 Deployment, ReplicaSet, 或者 ReplicationController 的副本数量Cluster Management Commands:certificate   修改 certificate 资源.cluster-info  显示集群信息top           Display Resource (CPU/Memory/Storage) usage.cordon        标记 node 为 unschedulableuncordon      标记 node 为 schedulabledrain         Drain node in preparation for maintenancetaint         更新一个或者多个 node 上的 taintsTroubleshooting and Debugging Commands:describe      显示一个指定 resource 或者 group 的 resources 详情logs          输出容器在 pod 中的日志attach        Attach 到一个运行中的 containerexec          在一个 container 中执行一个命令port-forward  Forward one or more local ports to a podproxy         运行一个 proxy 到 Kubernetes API servercp            复制 files 和 directories 到 containers 和从容器中复制 files 和 directories.auth          Inspect authorizationAdvanced Commands:diff          Diff live version against would-be applied versionapply         通过文件名或标准输入流(stdin)对资源进行配置patch         使用 strategic merge patch 更新一个资源的 field(s)replace       通过 filename 或者 stdin替换一个资源wait          Experimental: Wait for a specific condition on one or many resources.convert       在不同的 API versions 转换配置文件kustomize     Build a kustomization target from a directory or a remote url.Settings Commands:label         更新在这个资源上的 labelsannotate      更新一个资源的注解completion    Output shell completion code for the specified shell (bash or zsh)Other Commands:alpha         Commands for features in alphaapi-resources Print the supported API resources on the serverapi-versions  Print the supported API versions on the server, in the form of "group/version"config        修改 kubeconfig 文件plugin        Provides utilities for interacting with plugins.version       输出 client 和 server 的版本信息Usage:kubectl [flags] [options]Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).

kubectl get --help

[root@master ~]# kubectl get --help
Display one or many resourcesPrints a table of the most important information about the specified resources. You can filter the list using a label
selector and the --selector flag. If the desired resource type is namespaced you will only see results in your current
namespace unless you pass --all-namespaces.Uninitialized objects are not shown unless --include-uninitialized is passed.By specifying the output as 'template' and providing a Go template as the value of the --template flag, you can filter
the attributes of the fetched resources.Use "kubectl api-resources" for a complete list of supported resources.Examples:# List all pods in ps output format.kubectl get pods# List all pods in ps output format with more information (such as node name).kubectl get pods -o wide# List a single replication controller with specified NAME in ps output format.kubectl get replicationcontroller web# List deployments in JSON output format, in the "v1" version of the "apps" API group:kubectl get deployments.v1.apps -o json# List a single pod in JSON output format.kubectl get -o json pod web-pod-13je7# List a pod identified by type and name specified in "pod.yaml" in JSON output format.kubectl get -f pod.yaml -o json# List resources from a directory with kustomization.yaml - e.g. dir/kustomization.yaml.kubectl get -k dir/# Return only the phase value of the specified pod.kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}# List resource information in custom columns.kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image# List all replication controllers and services together in ps output format.kubectl get rc,services# List one or more resources by their type and names.kubectl get rc/web service/frontend pods/web-pod-13je7Options:-A, --all-namespaces=false: If present, list the requested object(s) across all namespaces. Namespace in current
context is ignored even if specified with --namespace.--allow-missing-template-keys=true: If true, ignore any errors in templates when a field or map key is missing in
the template. Only applies to golang and jsonpath output formats.--chunk-size=500: Return large lists in chunks rather than all at once. Pass 0 to disable. This flag is beta and
may change in the future.--field-selector='': Selector (field query) to filter on, supports '=', '==', and '!='.(e.g. --field-selector
key1=value1,key2=value2). The server only supports a limited number of field queries per type.-f, --filename=[]: Filename, directory, or URL to files identifying the resource to get from a server.--ignore-not-found=false: If the requested object does not exist the command will return exit code 0.-k, --kustomize='': Process the kustomization directory. This flag can't be used together with -f or -R.-L, --label-columns=[]: Accepts a comma separated list of labels that are going to be presented as columns. Names are
case-sensitive. You can also use multiple flag options like -L label1 -L label2...--no-headers=false: When using the default or custom-column output format, don't print headers (default print
headers).-o, --output='': Output format. One of:
json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...
See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template
[http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template
[http://kubernetes.io/docs/user-guide/jsonpath].--output-watch-events=false: Output watch event objects when --watch or --watch-only is used. Existing objects are
output as initial ADDED events.--raw='': Raw URI to request from the server.  Uses the transport specified by the kubeconfig file.-R, --recursive=false: Process the directory used in -f, --filename recursively. Useful when you want to manage
related manifests organized within the same directory.-l, --selector='': Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)--server-print=true: If true, have the server return the appropriate table output. Supports extension APIs and
CRDs.--show-kind=false: If present, list the resource type for the requested object(s).--show-labels=false: When printing, show all labels as the last column (default hide labels column)--sort-by='': If non-empty, sort list types using this field specification.  The field specification is expressed
as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression
must be an integer or a string.--template='': Template string or path to template file to use when -o=go-template, -o=go-template-file. The
template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview].-w, --watch=false: After listing/getting the requested object, watch for changes. Uninitialized objects are excluded
if no object name is provided.--watch-only=false: Watch for changes to the requested object(s), without listing/getting first.Usage:kubectl get
[(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags] [options]Use "kubectl options" for a list of global command-line options (applies to all commands).

4、kubectl 子命令使用分类

(1)基础命令

create

通过文件名或标准输入创建资源

kubectl create -f FILENAME [flags]

例如:

通过Kubernetes资源清单文件nginx.yaml创建一个NGINX应用程序。

kubectl create -f nginx.yaml

expose

将副本控制器、服务或 Pod 作为新的 Kubernetes 服务暴露。

kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags]

例如

创建nginx镜像后,我们就需要将端口暴露出去,让其它外界能够访问

对外暴露端口

kubectl expose deployment nginx --port=80 --type=NodePort

run

在集群中运行一个特定的镜像

kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server | client | none] [--overrides=inline-json] [flags]

例如:

创建一个名为 nginx 的 Deployment,并暴露 80 端口。

kubectl run nginx --image=nginx --port=80

set

配置应用资源。

kubectl set SUBCOMMAND [options]

比如kubectl set image:用于更新 Deployment、ReplicaSet、DaemonSet 等资源中的镜像,

将nginx容器的镜像版本设置为1.8的nginx镜像。

kubectl set image deployment/myapp nginx=nginx:1.8

get

列出一个或多个资源。

kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]

比如

列出集群中所有的Pod并显示它们的状态。

列出所有的Service并显示它们的状态

kubectl get pod,svc

explain

获取多种资源的文档。例如 Pod、Node、Service 等。

kubectl explain [--recursive=false] [flags]

比如:

查看Pod这个资源的详细说明,包括其定义的字段、含义以及使用方法等。

kubectl explain pod


KIND:     Pod
VERSION:  v1RESOURCE: pod <Object>DESCRIPTION:Pod is a top-level object that can represent a containerized application.The name for a pod must be unique within the namespace. Pod definitions arealways required to include a spec section, which specifies at least onecontainer to run in the pod.FIELDS:apiVersion    <string>APIVersion defines the versioned schema of this representation of an object.Servers should convert recognized schemas to the latest internal value, andmay reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resourceskind    <string>Kind is a string value representing the REST resource this object represents.Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kindsmetadata    <Object>Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadataspec    <Object>Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-statusstatus    <Object>Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

edit

使用默认编辑器编辑和更新服务器上一个或多个资源的定义。

kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]

比如:编辑名为my-deployment的Deployment对象

kubectl edit deployment/my-deployment

执行以上命令后,会自动打开Deployment的配置文件,并进入编辑模式。

delete

基于文件、标准输入或通过指定标签选择器、名称、资源选择器或资源本身,删除资源。

kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags]

比如:从Kubernetes集群中删除名为“nginx”的deployment以及相关的pod和副本集。

kubectl delete deployment nginx

(2)部署和集群管理命令

部署命令

rollout

管理资源的上线。有效的资源类型包括:Deployment、 DaemonSet 和 StatefulSet。

kubectl rollout SUBCOMMAND [options]

例如 回滚 Deployment 到前一个版本

kubectl rollout undo deployment/my-deployment

scale

扩容或缩容pod数量,有效的资源类型包括:Deployment、 ReplicaSet 、RC和 Job。

kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]

例如 扩容 Deployment 中的 Pod副本

kubectl scale deployment my-deployment --replicas=3

autoscale

自动扩缩容pod数量

kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]

例如:根据CPU使用率自动扩容或缩容Pod。 当Pod的CPU使用率达到50%时,HPA会自动增加Pod的数量,最小数量为1个,最大数量为10个。

kubectl autoscale deployment my-deployment --cpu-percent=50 --min=1 --max=10

集群管理命令

certificate

用于管理 Kubernetes 中的证书

kubectl certificate SUBCOMMAND [options]

例如用于批准证书签名请求:

kubectl certificate approve csr-name

cluster-info

显示有关集群中主服务器和服务的端口信息。

kubectl cluster-info [flags]

例如查看Kubernetes节点的信息

kubectl cluster-info nodes

top

显示资源(CPU、内存、存储)的使用情况。

kubectl top [flags] [options]

例如获取当前命名空间下的所有Pod的CPU和内存使用情况:

kubectl top pods

cordon

标记节点不可调度

kubectl cordon NODE [options]

例如将其中一个节点 node1 标记为不可调度(即不允许在该节点上创建新的 pod)

kubectl cordon node1

让 Kubernetes 知道该节点不可用,并阻止 Kubernetes 在该节点上调度新的 pod。但是,已经运行在该节点上的 pod 不会被迁移,除非您使用 kubectl drain 命令将它们删除或迁移到其他节点。

uncordon

标记节点可调度

kubectl uncordon NODE [options]

例如将不可调度的节点node1标记为可调度

kubectl uncordon node1

drain

腾空节点以准备维护。将节点从集群中删除,通常在节点升级、维护或故障处理期间使用。在将节点删除之前,它会将节点上的所有Pod迁移到其他节点上。

kubectl drain NODE [options]

举例将节点“node1”从集群中删除,并将该节点上的所有Pod迁移到其他可用节点。

kubectl drain node1 --ignore-daemonsets

–ignore-daemonsets选项将忽略守护进程集,以便它们可以在节点上正常运行,而不会迁移到其他节点。如果您不使用此选项,则守护进程集中的Pod也将被迁移。

taint

用于标记节点(污点),以便Pod可以选择性地调度到节点上。在Kubernetes集群中,节点可以被标记为“不可调度”。

kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N [options]

例如

在名为“node1”的节点上设置两个污点,一个是“app=nginx:NoSchedule”

kubectl taint nodes node1 app=nginx:NoSchedule

“app=nginx”是污点的key和value,NoSchedule是taint effect

标记的效果effect可以是下列任意一个:

  • NoSchedule:表示不允许调度新的Pod到这个节点上。
  • PreferNoSchedule:表示不建议将Pod调度到这个节点上,但不是禁止的。
  • NoExecute:表示如果已经存在Pod在节点上运行,当标记应用于节点时,这些Pod将被驱逐出节点。

(3)故障和调试命令

describe

显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。

kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags]

举例

image-20230808205037671

logs

打印 Pod 中容器的日志。

kubectl logs POD [-c CONTAINER] [--follow] [flags]

举例

image-20230808205101456

attach

将当前终端附加到运行中的容器中,以便与容器进行交互。

kubectl attach POD -c CONTAINER [-i] [-t] [flags]

例如连接到名为“my-pod”的Pod中的容器

kubectl attach my-pod -c container-name

exec

在Kubernetes Pod中执行命令或进入容器的交互式终端。

kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]

例如要进入名为my-pod的Pod的交互式终端,可以使用以下命令:

kubectl exec -it my-pod – /bin/bash

在进入Pod的交互式终端后,可以执行任何命令,就像在本地终端中一样。

attach与exec命令的区别:

kubectl exec命令会启动一个新的进程并与容器进行交互,而kubectl attach命令会连接到容器的主进程,使终端成为容器的标准输入/输出/错误流。

port-forward

将本地端口与 Kubernetes 集群中服务的端口进行映射,使得我们可以直接访问 Kubernetes 中的服务。

kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]

例如将 Kubernetes 集群中名为 my-service 的服务的 80 端口映射到本地的 8080 端口。

kubectl port-forward svc/my-service 8080:80

这样就可以在本地使用 http://localhost:8080 访问 Kubernetes 集群中的服务。

proxy

将本地端口与 Kubernetes API Server 上的端口相关联。

kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]

例如将本地的 8080 端口映射到 Kubernetes API Server 上的 8001 端口。在 Kubernetes 集群中,默认情况下 Kubernetes API Server 监听在 8001 端口上

kubectl proxy --port=8080

cp

从容器复制文件、目录或将文件、目录复制到容器。

kubectl cp   [options]

例如 将本地文件复制到 Pod 中

kubectl cp /path/to/local/file pod-name:/path/to/remote/destination

pod-name是目标 Pod 的名称

/path/to/local/file是本地文件的路径

/path/to/remote/destination是要存储文件的远程目录的路径

auth

管理Kubernetes集群中的认证和授权相关配置,包括用户、角色和角色绑定等。

kubectl auth [flags] [options]

例如检查您是否有在默认命名空间创建Pod的权限

kubectl auth can-i create pods

(4)其他命令

高级命令

apply

通过文件名或标准输入对资源应用配置

kubectl apply -f FILENAME [flags]

例如:

image-20230808205307490

patch

对已有的 Kubernetes 资源进行部分修改。可以使用该命令修改某个资源的某个属性值,或添加/删除某个标签或注释等。

kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]

例如将某个 Deployment 的 replicas 数量改为 3:

kubectl patch deployment my-deployment -p ‘{“spec”:{“replicas”: 3}}’

replace

通过完全覆盖(即替换)方式更新Kubernetes对象的特定字段

kubectl replace -f FILENAME

例如我们有一个Deployment对象,其名称为my-deployment,并且我们想要将其镜像更改为nginx:1.16:

kubectl replace deployment my-deployment --image=nginx:1.16

convert

将一个API对象的配置从一种API版本转换为另一种API版本。

kubectl convert -f FILENAME [options]

例如将Deployment API对象的配置文件从v1beta1版本转换为v1版本:

kubectl convert -f deployment.yaml --output-version=v1

设置命令

label

添加或更新一个或多个资源的标签。

kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]

例如为一个Pod添加label:

kubectl label pod nginx-app app=web

为名为"nginx-app" 的Pod添加一个标签 “app=web”。

annotate

添加或更新一个或多个资源的注解。

kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]

例如将pod名为my-pod的注释添加到key=value的标签,其中key是“key” , value是“value” 。

kubectl annotate pod my-pod key=value

其他命令

api-versions

列出可用的 API 版本。

kubectl api-versions [flags]

例如

kubectl api-versions


admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
batch/v1
certificates.k8s.io/v1
coordination.k8s.io/v1
events.k8s.io/v1
extensions/v1beta1
networking.k8s.io/v1
node.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
storage.k8s.io/v1
v1

config

修改 kubeconfig 文件。有关详细信息,请参阅各个子命令。

kubectl config SUBCOMMAND [flags]

例如设置一个新的上下文

kubectl config set-context my-context --cluster=my-cluster --user=my-user

plugin

提供用于与插件交互的实用程序。

kubectl plugin [flags] [options]

例如安装一个插件

kubectl plugin install

version

显示运行在客户端和服务器上的 Kubernetes 版本。

kubectl version [--client] [flags]

例如

kubectl version

该命令会返回客户端和服务器的版本信息。客户端版本指安装在本地的kubectl命令行工具版本;服务器版本指运行在Kubernetes集群中的Kubernetes组件版本,包括kube-apiserver、kube-controller-manager、kube-scheduler、kubelet等。

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

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

相关文章

中国信通院腾讯安全发布《2023数据安全治理与实践白皮书》

导读 腾讯科技(深圳)有限公司和中国信息通信研究院云计算与大数据研究所共同编制了本报告。本报告提出了覆盖组织保障、管理流程、技术体系的以风险为核心的数据安全治理体系&#xff0c;并选取了云场景、互娱、社交等场景&#xff0c;介绍相应场景下数据安全治理实践路线及主…

【Vue】使用print.js插件实现打印预览功能,超简单

目录 一、实现效果 二、实现步骤 【1】安装插件 【2】在需要打印的页面导入 【3】在vue文件中需要打印的部分外层套一层div&#xff0c;给div设置id。作为打印的区域 【4】在打印按钮上添加打印事件 【5】在methods中添加点击事件 三、完整代码 一、实现效果 二、实现步…

16-2_Qt 5.9 C++开发指南_使用样式表Qss自定义界面

进行本篇介绍学习前&#xff0c;请先参考链接01_1_Qt工程实践_Qt样式表Qss&#xff0c;后再结合本篇进行融合学习如何使用样式表定义界面。 文章目录 1. Qt样式表2. Qt样式表句法2.1 一般句法格式2.2 选择器 (selector)2.3 子控件&#xff08;sub-controls&#xff09;2.4 伪状…

构建Docker容器监控系统(cadvisor+influxDB+grafana)

目录 一、部署 1、安装docker-cd 2、阿里云镜像加速 3、下载组件镜像 4、创建自定义网络 5、创建influxdb容器 6、创建Cadvisor 容器 7、创建granafa容器 一、部署 1、安装docker-cd [rootlocalhost ~]# iptables -F [rootlocalhost ~]# setenforce 0 setenforce: SELi…

RS485实验

RS485实验 介绍 RS485采用差分信号进行传输&#xff0c;半双工通信。RS485是一个总线&#xff0c;在同一总线上最多可以挂接32个节点。通信流程简单理解为默认为接收状态&#xff0c;发送数据时切换为发送状态&#xff0c;数据发送完毕后切换为接收状态。发送和接收分别由一个…

[考研机试] KY20 完数VS盈数 清华大学复试上机题 C++实现

描述 一个数如果恰好等于它的各因子(该数本身除外)子和&#xff0c;如&#xff1a;6321。则称其为“完数”&#xff1b;若因子之和大于该数&#xff0c;则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述&#xff1a; 题目没有任何输入。 输出描述&#…

MachineLearningWu_13/P60-P64_Tensorflow

P60-P64的学习目录如下&#xff0c; x.1 TF网络模型实现 以一个简单的TF的分类网络为例&#xff0c;将模型翻译成框架下的语义&#xff0c;即如右侧所表达的。 当然上面对于分类网络的解释是一个简洁的解释&#xff0c;我们来进行更加具象的了解一下。左边是机器学习的三步骤&…

LeetCode题解:判断是否能拆分数组

⭐简单说两句⭐ 作者&#xff1a;后端小知识 CSDN个人主页&#xff1a;后端小知识 &#x1f50e;GZH&#xff1a;后端小知识 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 上周做了力扣周赛的题&#xff0c;给大家分享一个中等题目&#xff…

文章采集伪原创发布工具-147采集

在当今信息爆炸的时代&#xff0c;企业和个人都意识到了获取高质量、原创的内容的重要性。然而&#xff0c;手动撰写大量的原创内容是一项耗时费力的任务。为了解决这个问题&#xff0c;我向您介绍一款颠覆性的数据采集工具——147采集。 147采集是一款专业且高效的数据采集软件…

Linux安装配置nginx+php搭建以及在docker中配置

Linux安装配置nginxphp搭建以及在docker中配置 文章目录 Linux安装配置nginxphp搭建以及在docker中配置1.nginx源码包编译环境和安装相应的依赖1.1 安装编译环境1.2 安装pcre库、zlib库和openssl库 2.安装nginx2.1 在[nginx官网](https://nginx.org/en/download.html)上获取源码…

IDEA 指定spring.profiles.active本地启动

spring.profiles.activedev spring.profiles.activepro

Android开发实践:Android.mk模板

关于Android NDK开发的文章已经比较多了&#xff0c;我的博客中也分享了很多NDK开发相关经验和技巧&#xff0c;今天简单写了一个 Android.mk 的示例模板&#xff0c;供初学者参考。 本模板主要给大家示例 Android NDK 开发中的如下几个问题&#xff1a; 如何自动添加需要编译…

15_基于Flink将pulsar数据写入到ClickHouse

3.8.基于Flink将数据写入到ClickHouse 编写Flink完成数据写入到ClickHouse操作, 后续基于CK完成指标统计操作 3.8.1.ClickHouse基本介绍 ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用…

K最近邻算法:简单高效的分类和回归方法(三)

文章目录 &#x1f340;引言&#x1f340;训练集和测试集&#x1f340;sklearn中封装好的train_test_split&#x1f340;超参数 &#x1f340;引言 本节以KNN算法为主&#xff0c;简单介绍一下训练集和测试集、超参数 &#x1f340;训练集和测试集 训练集和测试集是机器学习和深…

【LeetCode】数据结构题解(11)[用队列实现栈]

用队列实现栈 &#x1f609; 1.题目来源&#x1f440;2.题目描述&#x1f914;3.解题思路&#x1f973;4.代码展示 所属专栏&#xff1a;玩转数据结构题型❤️ &#x1f680; >博主首页&#xff1a;初阳785❤️ &#x1f680; >代码托管&#xff1a;chuyang785❤️ &…

C语言文件操作基本方法

1、文件的分类 ANSI C 的缓冲文件系统 缓冲文件系统 缓冲文件系统是指&#xff0c;系统自动地在内存区为每个正在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据时&#xff0c;必须首先输出到缓冲区中。待缓冲区装满后&#xff0c;再一起输出到磁盘文件中。 从磁盘文件向内…

Python爬虫的Selenium(学习于b站尚硅谷)

目录 一、Selenium  1.为什么要学习Selenium  &#xff08;1&#xff09;什么是Selenium  &#xff08;2&#xff09;为什么使用selenium?  &#xff08;3&#xff09;代码演示 2. selenium的基本使用  &#xff08;1&#xff09;如何安装selenium  &#xff08;2…

探析STM32标准库与HAL库之间的差异与优劣

引言&#xff1a; 在嵌入式开发领域&#xff0c;STMicroelectronics的STM32系列芯片广受欢迎。STM32提供了两种主要的软件库&#xff0c;即标准库和HAL库&#xff0c;用于开发各种应用。本文将探讨这两种库之间的差异&#xff0c;比较它们的优劣&#xff0c;并分析在选择库时需…

数仓架构模型设计参考

1、数据技术架构 1.1、技术架构 1.2、数据分层 将数据仓库分为三层&#xff0c;自下而上为&#xff1a;数据引入层&#xff08;ODS&#xff0c;Operation Data Store&#xff09;、数据公共层&#xff08;CDM&#xff0c;Common Data Model&#xff09;和数据应用层&#xff…

Android 数据库之GreenDAO

GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架&#xff0c;将 Java 对象映射到 SQLite 数据库中&#xff0c;我们操作数据库的时候&#xff0c;不再需要编写复杂的 SQL语句&#xff0c; 在性能方面&#xff0c;greenDAO 针对 Android 进行了高度优化&#xff0c;…