k8s 读书笔记 - kubectl 命令行工具用法详解

kubectl 在 k8s 集群中作为 客户端 CLI 工具,可以让用户使用 kubectl 工具执行命令行,并通过使用 k8s API 与 k8s 集群的控制面(kube-controller-manager)进行通信。

0fac8fa7ba7a6d9f16070139cf318287.png

kubectl 语法格式

kubectl 命令行的语法格式如下:

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

其中 command、TYPE、NAME 和 flags 的含义分别如下:

  • • command:子命令,用于操作 k8s 集群资源对象的命令,例如 create、get、describe、delete

  • • TYPE:k8s 集群中资源对象的类型,区分大小写,能以单数、复数或者简写形式表示。例如以下三种类型是等效的。

kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
  • • NAME:k8s 集群中资源对象的名称,区分大小写。如果不指定名称,系统则返回属于 TYPE 的全部资源对象列表,例如:

# 返回所有 Pod 列表
kubectl get pods
  • • flags:kubectl 子命令的可选参数。例如使用 "-s" 指定 API Server 的 URL 地址而不用默认值。

kubectl 可操作资源对象类型

kubectl 可操作的资源对象类型和缩写别名,如下清单所示:

Resource type,资源类型Abbreviated alias,缩写别名
apiservices
certificatesigningrequestscsr
clusters
clusterrolebindings
clusterroles
componentstatusescs
configmapscm
controllerrevisions
cronjobs
customresourcedefinitioncrd
daemonsetsds
deploymentsdeploy
endpointsep
eventsev
horizontalpodautoscalershpa
ingressesing
jobs
limitrangeslimits
namespacesns
networkpoliciesnetpol
nodesno
persistentvolumeclaimspvc
persistentvolumespv
poddisruptionbudgetpdb
podpreset
podspo
podsecuritypoliciespsp
podtemplates
replicasetsrs
replicationcontrollersrc
resourcequotasquota
rolebindings
roles
secrets
serviceaccountssa
servicessvc
statefulsets
storageclasses

在一个命令行中也可以同时操作多个资源对象,以多个 TYPE 和 NAME 的组合表示,例如:

  • • 获取多个Pod的信息

kubectl get pods pod1 pod2
  • • 获取多种对象的信息

kubectl get pod/pod1 rc/rc1
  • • 同时应用多个 yaml 文件,以多个 -f file 参数表示

kubectl get pod -f pod1.yaml -f pod2.yaml
kubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml
kubectl apply -f pod1.yaml -f rc1.yaml -f service1.yaml

kubectl 连接到 k8s 集群环境

kubectl 想要连接到 k8s 集群,必须有 kubeconfig 配置文件的,里面配置了连接哪个集群,以什么身份进入等信息。

拷贝 kubectl 工具用的 kubeconfig 到默认路径下:

# 在当前目录($HOME)下创建子目录 "/.kube" ,参数-p 确保目录名称存在,不存在的就建一个。
mkdir -p $HOME/.kube
# 拷贝文件到目标目录,并提示用户是否覆盖文件,输入 y 时目标文件将被覆盖。
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# 给目标文件目录设定权限
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubeconfig.yaml  文件结构如下:

f8ec2b0a712a4a82345d0bfa321da548.png

多个 k8s 集群环境切换,只需把【集群】、【上下文】和【客户认证】信息配置好,然后调整【当前上下文】确定使用哪个集群环境。

  • • 【集群,cluster】配置集群的相关信息,集群服务器访问IP地址,集群名称;

  • • 【上下文,contexts】集群名称,进入的用户名,用户角色;

  • • 【当前上下文,current-context】确定使用哪个集群环境。

  • • 【客户认证】用户的名称,CA 证书配置。

使用 --kubeconfig 指定该 config 文件,即可使用 kubectl 查看对应的集群信息,如下所示:

kubectl --kubeconfig=/config get node
7c90749efaa0a2c7743c230fa590ee21.png

kubectl 子命令操作(Operations)详解

kubectl 的子命令非常丰富,涵盖了对 k8s 集群的主要操作,包括资源对象的创建、删除、查看、配置、运行等,详细命令如下表:

25d603e10e89e18854d3cf17aa11e0b6.png


kubectl 子命令参数列表

kubectl 每个子命令(如 create,delete,get 等)还有特定的 flags 参数,可以通过 kubectl [command] --help 命令查看。

参数列表

参数名称说明
--add-dir-header设置为 true 表示添加文件目录到日志信息头中
--alsologtostderr表示将日志输出到文件的同时输出到 stderr
--as string以指定用户的身份执行操作
--as-group stringArray模拟指定的组来执行操作,可以使用这个标志来指定多个组。
--azure-container-registry-config string包含 Azure 容器仓库配置信息的文件的路径。
--cache-dir string默认值: "$HOME/.kube/cache" 默认缓存目录
--certificate-authority string指向证书机构的 cert 文件路径
--client-certificate stringTLS 使用的客户端证书路径
--client-key stringTLS 使用的客户端密钥文件路径
--cloud-provider-gce-l7lb-src-cidrs cidrs 默认值: 130.211.0.0/22,35.191.0.0/16在 GCE 防火墙中开放的 CIDR,用来进行 L7 LB 流量代理和健康检查。
--cloud-provider-gce-lb-src-cidrs cidrs 默认值: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16在 GCE 防火墙中开放的 CIDR,用来进行 L4 LB 流量代理和健康检查。
--cluster string要使用的 kubeconfig 集群的名称
--context string要使用的 kubeconfig 上下文的名称
--default-not-ready-toleration-seconds int 默认值: 300表示 notReady 状态的容忍度秒数:默认情况下,NoExecute 被添加到尚未具有此容忍度的每个 Pod 中。
--default-unreachable-toleration-seconds int 默认值: 300表示 unreachable 状态的容忍度秒数:默认情况下,NoExecute 被添加到尚未具有此容忍度的每个 Pod 中。
-h, --helpkubectl 操作的帮助命令
--insecure-skip-tls-verify设置为 true,则表示不会检查服务器证书的有效性。这样会导致你的 HTTPS 连接不安全。
--kubeconfig stringCLI 请求使用的 kubeconfig 配置文件的路径。
--log-backtrace-at traceLocation 默认值: 0当日志机制运行到指定文件的指定行(file:N)时,打印调用堆栈信息
--log-dir string如果不为空,则将日志文件写入此目录
--log-file string如果不为空,则将使用此日志文件
--log-file-max-size uint 默认值: 1800定义日志文件的最大尺寸。单位为兆字节。如果值设置为 0,则表示日志文件大小不受限制。
--log-flush-frequency duration 默认值: 5s两次日志刷新操作之间的最长时间(秒)
--logtostderr 默认值: true日志输出到 stderr 而不是文件中
--match-server-version要求客户端版本和服务端版本相匹配
-n, --namespace string如果存在,CLI 请求将使用此命名空间
--one-output如果为 true,则只将日志写入初始严重级别(而不是同时写入所有较低的严重级别)。
--password stringAPI 服务器进行基本身份验证的密码
--profile string 默认值: "none"要记录的性能指标的名称。可取 (none
--profile-output string 默认值: "profile.pprof"用于转储所记录的性能信息的文件名
--request-timeout string 默认值: "0"放弃单个服务器请求之前的等待时间,非零值需要包含相应时间单位(例如:1s、2m、3h)。零值则表示不做超时要求。
-s, --server stringKubernetes API 服务器的地址和端口
--skip-headers设置为 true 则表示跳过在日志消息中出现 header 前缀信息
--skip-log-headers设置为 true 则表示在打开日志文件时跳过 header 信息
--stderrthreshold severity 默认值: 2等于或高于此阈值的日志将输出到标准错误输出(stderr)
--token string用于对 API 服务器进行身份认证的持有者令牌
--user string指定使用 kubeconfig 配置文件中的用户名
--username string用于 API 服务器的基本身份验证的用户名
-v, --v Level指定输出日志的日志详细级别
--version version[=true]打印 kubectl 版本信息并退出
--vmodule moduleSpec以逗号分隔的 pattern=N 设置列表,用于过滤文件的日志记录

环境变量

参数说明
KUBECONFIGkubectl 的配置 ("kubeconfig") 文件的路径。默认值: "$HOME/.kube/config"
KUBECTL_COMMAND_HEADERS设置为 false 时,关闭用于详细说明被调用的 kubectl 命令的额外 HTTP 标头 (Kubernetes 版本为 v1.22 或者更高)

kubectl 命令基本分类

3cf3c375dc3ea5263ba71cf69f0bd3ae.png

命令补全配置:

  1. 1. 安装依赖包

yum install bash-completion
  1. 1. 重新载入下终端

bash
  1. 1. 执行指令

source <(kubectl completion bash)

输出选项(Output options)

格式化输出(Formatting output)

所有 kubectl 命令的默认输出格式都是人类可读的纯文本格式。要以特定格式在终端窗口输出详细信息, 可以将 -o 或 --output 参数添加到受支持的 kubectl 命令中。

语法:

kubectl [command] [TYPE] [NAME] -o <output_format>

取决于具体的 kubectl 操作,支持的输出格式如下:

f7c2281321b1df1e2531f9af22daa493.png

示例

在此示例中,以下命令将单个 Pod 的详细信息输出为 YAML 格式的对象:

kubectl get pod web-pod-13je7 -o yaml

提示,有关每个命令支持哪种输出格式的详细信息,请参阅 kubectl 参考文:

https://kubernetes.io/zh-cn/docs/reference/kubectl/kubectl/

自定义列(Custom columns)

要定义自定义列并仅将所需的详细信息输出到表中,可以使用 custom-columns 选项。你可以选择内联定义自定义列或使用模板文件:-o custom-columns=<spec> 或 -o custom-columns-file=<filename>

示例

  1. 1. 内联(Inline)方式:

kubectl get pods <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
  1. 1. 模板文件方式:

kubectl get pods <pod-name> -o custom-columns-file=template.txt

其中,template.txt 文件包含:

NAME           RSRC
metadata.name  metadata.resourceVersion

上面这两个命令的运行结果类似如下:

NAME           RSRC
submit-queue   610995

Server-side 列

kubectl 支持从服务器接收关于对象的特定列信息。这意味着对于任何给定的资源,服务器将返回与该资源相关的列和行,以便客户端打印。通过让服务器封装打印的细节,这允许在针对同一集群使用的客户端之间提供一致的人类可读输出。

此功能默认启用。要禁用它,请将该 --server-print=false 参数添加到 kubectl get 命令中。

例子

要打印有关 Pod 状态的信息,请使用如下命令:

kubectl get pods <pod-name> --server-print=false

输出信息:

NAME       AGE
pod-name   1m

排序列表对象(Sorting list objects)

要将对象排序后输出到终端窗口,可以将 --sort-by 参数添加到支持的 kubectl 命令。通过使用 --sort-by 参数指定任何数字或字符串字段来对对象进行排序。要指定字段,请使用 jsonpath 表达式。

语法

kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>

示例

要打印按名称排序的 Pod 列表,请运行:

kubectl get pods --sort-by=.metadata.name

JSONPath 支持

kubectl 支持 JSONPath 模板。JSONPath 模板由 {} 包起来的 JSONPath 表达式组成。kubectl 使用 JSONPath 表达式来过滤 JSON 对象中的特定字段并格式化输出。除了原始的 JSONPath 模板语法,以下函数和语法也是有效的:

  1. 1. 使用双引号将 JSONPath 表达式内的文本引起来。

  2. 2. 使用 range,end 运算符来迭代列表。

  3. 3. 使用负片索引后退列表。负索引不会“环绕”列表,并且只要 -index + listLength> = 0 就有效。

说明:

  • • $ 运算符是可选的,因为默认情况下表达式总是从根对象开始。

  • • 结果对象将作为其 String() 函数输出。

关于 JSONPath 更多的信息,请查看:

https://kubernetes.io/zh-cn/docs/reference/kubectl/jsonpath/

kubectl 常用命令操作

使用以下示例集来帮助你熟悉运行常用 kubectl 操作:

  • • kubectl apply - 以文件或标准输入为准应用或更新资源。

# 使用 example-service.yaml 中的定义创建服务。
kubectl apply -f example-service.yaml# 使用 example-controller.yaml 中的定义创建 replication controller。
kubectl apply -f example-controller.yaml# 使用 <directory> 路径下的任意 .yaml、.yml 或 .json 文件 创建对象。
kubectl apply -f <directory>
  • • kubectl get - 列出一个或多个资源。

# 以纯文本输出格式列出所有 Pod。
kubectl get pods# 以纯文本输出格式列出所有 Pod,并包含附加信息(如节点名)。
kubectl get pods -o wide# 以纯文本输出格式列出具有指定名称的副本控制器。提示:你可以使用别名 'rc' 缩短和替换 'replicationcontroller' 资源类型。
kubectl get replicationcontroller <rc-name># 以纯文本输出格式列出所有副本控制器和服务。
kubectl get rc,services# 以纯文本输出格式列出所有守护程序集,包括未初始化的守护程序集。
kubectl get ds --include-uninitialized# 列出在节点 server01 上运行的所有 Pod
kubectl get pods --field-selector=spec.nodeName=server01
  • • kubectl describe - 显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。

# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe nodes <node-name># 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe pods/<pod-name># 显示由名为 <rc-name> 的副本控制器管理的所有 Pod 的详细信息。
# 记住:副本控制器创建的任何 Pod 都以副本控制器的名称为前缀。
kubectl describe pods <rc-name># 描述所有的 Pod
kubectl describe pods

说明: kubectl get 命令通常用于检索同一资源类别的一个或多个资源。它具有丰富的参数,允许你使用 -o 或 --output 参数自定义输出格式。你可以指定 -w 或 --watch 参数以开始监测特定对象的更新。 kubectl describe 命令更侧重于描述指定资源的许多相关方面。它可以调用对 API 服务器 的多个 API 调用来为用户构建视图。例如,该 kubectl describe node 命令不仅检索有关节点的信息,还检索在其上运行的 Pod 的摘要,为节点生成的事件等。

  • • kubectl delete - 基于文件、标准输入或通过指定标签选择器、名称、资源选择器或资源来删除资源。

# 使用 pod.yaml 文件中指定的类型和名称删除 Pod。
kubectl delete -f pod.yaml# 删除所有带有 '<label-key>=<label-value>' 标签的 Pod 和服务。
kubectl delete pods,services -l <label-key>=<label-value># 删除所有 Pod,包括未初始化的 Pod。
kubectl delete pods --all
  • • kubectl exec - 对 Pod 中的容器执行命令。

# 从 Pod <pod-name> 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器。
kubectl exec <pod-name> -- date# 运行输出 'date' 获取在 Pod <pod-name> 中容器 <container-name> 的输出。
kubectl exec <pod-name> -c <container-name> -- date# 获取一个交互 TTY 并在 Pod  <pod-name> 中运行 /bin/bash。默认情况下,输出来自第一个容器。
kubectl exec -ti <pod-name> -- /bin/bash
  • • kubectl logs - 打印 Pod 中容器的日志。

# 返回 Pod <pod-name> 的日志快照。
kubectl logs <pod-name># 从 Pod <pod-name> 开始流式传输日志。这类似于 'tail -f' Linux 命令。
kubectl logs -f <pod-name>
  • • kubectl diff - 查看集群建议更新的差异。

# “pod.json”中包含的差异资源。
kubectl diff -f pod.json# 从标准输入读取的差异文件。
cat service.yaml | kubectl diff -f -

关于 kubectl 更多的信息,请查看:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

kubectl 插件的创建和使用

使用以下示例来帮助你熟悉编写和使用 kubectl 插件。

Linux 环境下 .sh 可执行文件

创建 kubectl 插件之前,先了解下 linux下执行 .sh 文件的方法,举个例子:

  • • 创建文件 kubectl-hello.sh(以前缀 "kubectl-" 开始,为 kubectl 创建插件铺垫),里面输入下面信息:

  1. 1. 编辑 kubectl-hello.sh 文件

vi kubectl-hello.sh
  1. 2. 添加如下内容

#!/bin/sh
# 打印单词 "hello world"
echo "hello world"
  • • 查看 kubectl-hello.sh 文件内容

cat ./kubectl-hello
  • • 给 kubectl-hello.sh 可执行权限

sudo chmod a+x kubectl-hello.sh
  • • 执行命令,本身目录下运行

sh kubectl-hello.sh
  • • 输出信息

hello world

编写 kubectl 插件

你可以用任何编程语言或脚本编写插件,允许你编写命令行命令。

不需要安装插件或预加载,插件可执行程序从 kubectl 二进制文件接收继承的环境, 插件根据其名称确定它希望实现的命令路径。例如,名为 kubectl-foo 的插件提供了命令 kubectl foo。必须将插件的可执行文件安装在 PATH 中的某个位置。

kubectl 插件编写示例

通过上面的例子,接下来我们继续修改 kubectl-hello.sh 文件(为了区分 kubectl-hello.sh,新建一个 kubectl-foo 文件步骤和上面类似),在 kubectl-foo 文件中编写如下信息:

#!/bin/bash# 可选的参数处理
if [[ "$1" == "version" ]]
thenecho "1.0.0"exit 0
fi# 可选的参数处理
if [[ "$1" == "config" ]]
thenecho $KUBECONFIGexit 0
fiecho "I am a plugin named kubectl-foo"

使用 kubectl 插件

  • • 授权可执行文件,要使用某插件,先要使其可执行:

sudo chmod +x ./kubectl-foo
  • • 设置环境变量,并将它放在你的 PATH 中的任何地方:

sudo mv ./kubectl-foo /usr/local/bin
  • • kubectl 插件调用

kubectl foo

输出信息:

I am a plugin named kubectl-foo

查看所有可用的 kubectl 插件

查看可用的所有 kubectl 插件:

kubectl plugin list

输出类似信息:

The following kubectl-compatible plugins are available:/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
/usr/local/bin/kubectl-bar

kubectl plugin list 指令也可以向你告警哪些插件被运行,或是被其它插件覆盖了,例如:

sudo chmod -x /usr/local/bin/kubectl-foo # 删除执行权限
kubectl plugin list
The following kubectl-compatible plugins are available:/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo- warning: /usr/local/bin/kubectl-foo identified as a plugin, but it is not executable
/usr/local/bin/kubectl-barerror: one plugin warning was found

你可以将插件视为在现有 kubectl 命令之上构建更复杂功能的一种方法。

关于 kubectl 插件的更多信息,请查看:

https://kubernetes.io/zh-cn/docs/tasks/extend-kubectl/kubectl-plugins/

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

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

相关文章

初级必备:单例模式的7个问题

故事 实话实说&#xff0c;关于单例模式&#xff0c;网上有N多个版本。你估计也看过很多版本。但看完了又能怎样&#xff1f;我技术群里的一位小伙伴&#xff0c;上周面试&#xff0c;就因为一个单例模式&#xff0c;然后叫他回去等通知了。 下面是这位同学被问到的问题&…

Spring AOP源码解析——AOP动态代理原理和实现方式

2019独角兽企业重金招聘Python工程师标准>>> Spring介绍 Spring(http://spring.io/)是一个轻量级的Java 开发框架&#xff0c;同时也是轻量级的IoC和AOP的容器框架&#xff0c;主要是针对JavaBean的生命周期进行管理的轻量级容器&#xff0c;可以单独使用&#xff0…

使用.NET构建简单的高性能Redis(三)

译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现&#xff0c;但是他在优化这个简单"Redis"路程很有趣&#xff0c;也能给我们在从事性能优化工作时带来一些启…

海尔联手软银机器人,进军服务机器人领域

海尔此次将正式全面进入到服务机器人。 据悉&#xff0c;3月6日海尔公布了未来对于家用机器人的最新战略&#xff0c;同时与软银展开战略合作&#xff0c;将软银的人形机器人引入中国市场&#xff0c;正式进军服务机器人领域。 在本次发布会上&#xff0c;海尔与软银将联手从软…

.NET 7 中的 EndpointFilter

ASP.NET 7 中的 EndpointFilterIntro.NET 6 开始微软引入了 Minimal API&#xff0c;但是相比成熟的控制器模型&#xff0c;还是有很多的不足&#xff0c;.NET 7 针对于 Minimal API 也做了一些改进来让 Minimal API 功能更加丰富&#xff0c;其中 Filter 就是其中的一个更新从…

越来越火的图数据库到底能做什么?

作者 | 俞方桦 随着大数据时代的到来&#xff0c;传统的关系型数据库由于其在数据建模和存储方面的限制&#xff0c;变得越来越难以满足大量频繁变化的需求。关系型数据库&#xff0c;尽管其名称中有“关系”这个词&#xff0c;却并不擅长处理复杂关系的查询和分析。另外&…

piwik抓取用户交互行为

2019独角兽企业重金招聘Python工程师标准>>> https://github.com/matomo-org/matomo-sdk-ios/tree/version-3 http://piwik.org 首先下载demo&#xff0c;把文件拖到项目中去&#xff0c;在AppDelegate.m文件填写piwik服务器的URL和编号&#xff1b; 例如&#xff1…

k8s 读书笔记 - kubernetes 基本概念和术语(下)

DevOps前言上一篇文章 中&#xff0c;我们介绍了 k8s 中的 Master、Node、Pod、Label、RC & RS、Deployment、HPA & VPA、DaemonSet 这些资源对象信息&#xff0c;接下来我们继续介绍 k8s 中常用的资源对象。StatefulSet在 k8s 系统中&#xff0c;Pod 的管理对象 RC、D…

java数据类型后加三个点...

2019独角兽企业重金招聘Python工程师标准>>> 从Java5开始&#xff0c;Java语言对方法参数支持一种新写法&#xff0c;varargs&#xff08;可变长度参数列表&#xff09;&#xff0c;其语法就是类型后跟...&#xff0c;表示此处接受的参数为0到多个Object类型的对象&…

手把手教你用 Jenkins 自动部署 SpringBoot!

1. 什么是 CI/CD 1.1 CI&#xff08;Continuous Integration&#xff09; 1.2 CD&#xff08;Continuous Delivery/Continuous Deployment&#xff09; 2. 什么是 Jenkins 3. 准备工作 3.1 整体规划 3.2 准备代码 3.3 准备服务器 4. 搭建 Jenkins 5. 安装插件 6. 配置 …

bondat蠕虫传播与对抗

转载来自&#xff1a;http://www.mottoin.com/109730.html &#xff08;1&#xff09;可移动磁盘传播手段&#xff1a;隐藏U盘文件&#xff0c;创建快捷方式指向病毒bat文件。Bondat蠕虫主要通过可移动磁盘传播&#xff0c;并借助可移动磁盘中的文件隐蔽自身。Bondat蠕虫会检索…

vim 编译 Python 代码提示配置

2019独角兽企业重金招聘Python工程师标准>>> .vim 和.vimrc 拷贝到根目录 注意根目录下默认是没有.vim的&#xff0c;所以拷贝.vim 没问题&#xff0c;但是拷贝.vimrc 之前需要把原来的.vimrc备份 两个文件下载&#xff1a;http://pan.baidu.com/s/1eRRhakM 转载于:…

[转]Pinia与Vuex的对比:Pinia是Vuex的良好替代品吗?

文章目录 介绍设置 Pinia 设置Vuex 设置使用 Pinia使用Vuex使用社区和生态系统的力量学习曲线和文档GitHub 评分性能比较 Pinia 2 和 Vuex 4Vuex 和 Pinia 的优缺点何时使用Pinia&#xff0c;何时使用Vuex介绍 Pinia 是 Vue.js 的轻量级状态管理库&#xff0c;最近很受欢迎。它…

1.2开发文档简读,了解全貌.mp4

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6910254.html

开源:一款开源的高颜值现代化桌面美化工具

背景在日常的工作或学习中&#xff0c;难免会有一些临时的文件夹&#xff0c;文件&#xff0c;应用&#xff0c;出现在你的桌面&#xff0c;但是呢你又不确定它是不是哪一天会突然用到&#xff0c;这样一天又一天&#xff0c;直至你的电脑桌面是一片狼藉&#xff0c;满屏的文件…

软件工程—团队作业1

软件工程—团队作业1 团队称号&#xff1a;Thanos &#xff08;灭霸&#xff0c;超叼的一个动漫人物&#xff09; 团队成员&#xff1a; 队长 成凯 1600802002 博客链接&#xff1a; http://www.cnblogs.com/ck03/ 党康 1600208004 博客链接&#xff1a; http://www.cnblogs…

k8s 读书笔记 - kubernetes 基本概念和术语(上)

k8s 资源控制系统k8s 中大部分概念如&#xff1a;Node、Pod、Replication Controller、RS、Deployment、Service 等都可以被看作一种资源对象&#xff0c;激活所有的资源对象都可以通过 k8s 提供 kubectl 工具&#xff08;或者 API 编程调用&#xff09;执行 CRUD 等操作并将其…

CentOs6.5下安装svn

1、检查是否已安装 rpm -qa subversion 1、1如果需要卸载旧版本&#xff08;如果想在一台机器安装不同svn&#xff0c;切记不要执行此步骤&#xff01;&#xff01;&#xff01;&#xff09; yum remove subversion 2、安装 yum install subversion 3、检查安装是否成功 svnser…

Android 升级到android studio 2.2项目死活run不起来

背景&#xff1a;升级到Android studio 2.2项目死活运行不起来 现象如下&#xff1a; run with --stacktrace --debug等等抛出的bug简直无法忍视 解决办法&#xff1a;把compileSdkVersion 改为23成功run起来了

【python】-- Django 中间件、缓存、信号

Django 中间件、缓存、信号 一、 Django 中间件 django 中的中间件&#xff08;middleware&#xff09;&#xff0c;在django中&#xff0c;中间件其实就是一个类&#xff0c;在请求到来和结束后&#xff0c;django会根据自己的规则在合适的时机执行中间件中相应的方法。 在d…