使用kubectl管理Kubernetes(k8s)集群:常用命令,查看负载,命名空间namespace管理

服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64

kubectl是Kubernetes提供的命令行工具,kubectl 使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信。

针对配置信息,kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件来连接Kubernetes 集群。 你可以通过设置 KUBECONFIG 环境变量或设置 –kubeconfig 参数来指定其它 kubeconfig 文件。

3.1 kubectl语法

kubectl的语法为: kubectl [command] [TYPE] [NAME] [flags],其中 command、TYPE、NAME 和 flags 分别是:

  • command:指定要对一个或多个资源执行的操作,例如 create、get、describe、delete。
  • TYPE:指定资源类型。资源类型不区分大小写, 可以指定单数、复数或缩写形式。例如,以下命令输出相同的结果:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
  • NAME:指定资源的名称。名称区分大小写。 如果省略名称,则显示所有资源的详细信息。例如:kubectl get pods。
  • flags: 指定可选的参数。例如,可以使用 -s 或 –server 参数指定 Kubernetes API 服务器的地址和端口。

要对所有类型相同的资源进行分组,请执行以下操作:TYPE1 name1 name2 name

分别指定多个资源类型:TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE

3.2 kubectl格式化输出

kubectl格式化输出语法: kubectl [command] [TYPE] [NAME] -o

-o custom-columns=spec 使用逗号分隔的自定义列列表打印表。 -o custom-columns-file=filename 使用 filename文件中的自定义列模板打印表。 -o json 输出 JSON 格式的 API 对象 -o jsonpath=template 打印 jsonpath 表达式定义的字段 -o jsonpath-file=filename 打印 filename>文件中 jsonpath 表达式定义的字段。 -o name 仅打印资源名称而不打印任何其他内容。 -o wide 以纯文本格式输出,包含所有附加信息。对于 Pod 包含节点名。 -o yaml 输出 YAML 格式的 API 对象。

查看从什么地址能访问k8s API,会显示k8s集群的master节点的地址

[root@k8scloude1 ~]# kubectl cluster-info
Kubernetes control plane is running at https://192.168.110.130:6443
CoreDNS is running at https://192.168.110.130:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查看kubectl版本

[root@k8scloude1 ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:25:06Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}

[root@k8scloude1 ~]# kubectl version --short
Client Version: v1.21.0
Server Version: v1.21.0

查看k8s的pod网段,可以看到pod网段为10.244.0.0/16

#查看初始化时候的k8s集群配置:kubeadm config view
[root@k8scloude1 ~]# kubeadm config view
Command "view" is deprecated, This command is deprecated and will be removed in a future release, please use 'kubectl get cm -o yaml -n kube-system kubeadm-config' to get the kubeadm config directly.

apiServer:
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.21.0
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}

查看kubeconfig文件的结构

[root@k8scloude1 ~]# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.110.130:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

5.1 安装metric-server

查看node节点和pod的负载,发现看不了node和pod的负载,是因为没有安装metric-server

[root@k8scloude1 ~]# kubectl top nodes
W0109 16:45:38.197980   75467 top_node.go:119] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
error: Metrics API not available

[root@k8scloude1 ~]# kubectl top pods
W0109 16:45:58.436117   75718 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
error: Metrics API not available

为了查看节点和pod的负载,下面开始安装metric-server

创建目录,用来存放metric-server

[root@k8scloude1 ~]# mkdir metric-server

[root@k8scloude1 ~]# cd metric-server/

下载metrics-server并解压

[root@k8scloude1 metric-server]# wget https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz

[root@k8scloude1 metric-server]# ls
v0.3.6.tar.gz

[root@k8scloude1 metric-server]# tar xf v0.3.6.tar.gz

[root@k8scloude1 metric-server]# ls
metrics-server-0.3.6  v0.3.6.tar.gz

[root@k8scloude1 metric-server]# cd metrics-server-0.3.6/

[root@k8scloude1 metrics-server-0.3.6]# ls
cmd  code-of-conduct.md  CONTRIBUTING.md  deploy  Gopkg.lock  Gopkg.toml  hack  LICENSE  Makefile  OWNERS  OWNERS_ALIASES  pkg  README.md  SECURITY_CONTACTS  vendor  version

[root@k8scloude1 metrics-server-0.3.6]# cd deploy/

[root@k8scloude1 deploy]# ls
1.7  1.8+  docker  minikube

[root@k8scloude1 deploy]# cd 1.8+

[root@k8scloude1 1.8+]# ls
aggregated-metrics-reader.yaml  auth-delegator.yaml  auth-reader.yaml  metrics-apiservice.yaml  metrics-server-deployment.yaml  metrics-server-service.yaml  resource-reader.yaml

查看需要下载的镜像,image: k8s.gcr.io/metrics-server-amd64:v0.3.6这个镜像国内访问不了,我们手动下载一个国内镜像

[root@k8scloude1 1.8+]# grep image metrics-server-deployment.yaml
      # mount in tmp so we can safely use from-scratch images and/or read-only containers
        image: k8s.gcr.io/metrics-server-amd64:v0.3.6
        imagePullPolicy: Always

在k8s集群master节点和worker节点都需要下载metrics-server-amd64:v0.3.6镜像

[root@k8scloude1 1.8+]# docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6

[root@k8scloude1 1.8+]# docker images | grep mirrorgooglecontainers
REPOSITORY                                                        TAG        IMAGE ID       CREATED         SIZE
mirrorgooglecontainers/metrics-server-amd64                       v0.3.6     9dd718864ce6   2 years ago     39.9MB

镜像已经下好了,现在进行docker tag重命名,并删除原镜像mirrorgooglecontainers/metrics-server-amd64:v0.3.6

[root@k8scloude1 1.8+]# docker tag mirrorgooglecontainers/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6

[root@k8scloude1 1.8+]# docker rmi mirrorgooglecontainers/metrics-server-amd64:v0.3.6

worker节点也进行相同操作

[root@k8scloude2 ~]# docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6

[root@k8scloude2 ~]# docker tag mirrorgooglecontainers/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6

[root@k8scloude2 ~]# docker rmi mirrorgooglecontainers/metrics-server-amd64:v0.3.6

[root@k8scloude3 ~]# docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6

[root@k8scloude3 ~]# docker tag mirrorgooglecontainers/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6

[root@k8scloude3 ~]# docker rmi mirrorgooglecontainers/metrics-server-amd64:v0.3.6

修改配置文件,镜像下载策略imagePullPolicy改为IfNotPresent,IfNotPresent表示只有当镜像在本地不存在时才会拉取

[root@k8scloude1 1.8+]# pwd
/root/metric-server/metrics-server-0.3.6/deploy/1.8+

#修改内容如下: imagePullPolicy: IfNotPresent
       command:
     - /metrics-server
       - --metric-resolution=30s
       - --kubelet-insecure-tls
       - --kubelet-preferred-address-types=InternalIP
[root@k8scloude1 1.8+]# tail -20 metrics-server-deployment.yaml
        k8s-app: metrics-server
    spec:
      serviceAccountName: metrics-server
      volumes:
      # mount in tmp so we can safely use from-scratch images and/or read-only containers
      - name: tmp-dir
        emptyDir: {}
      containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.6
        imagePullPolicy: IfNotPresent
        command:
        - /metrics-server
        - --metric-resolution=30s
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp

安装metrics-server

#kubectl apply -f .    .表示安装当前目录下的所有文件
[root@k8scloude1 1.8+]# kubectl apply -f .
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
Warning: rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
Warning: rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 RoleBinding
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
Warning: apiregistration.k8s.io/v1beta1 APIService is deprecated in v1.19+, unavailable in v1.22+; use apiregistration.k8s.io/v1 APIService
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
deployment.apps/metrics-server created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created

查看所有的命名空间

[root@k8scloude1 1.8+]# kubectl get ns
NAME              STATUS   AGE
default           Active   18h
kube-node-lease   Active   18h
kube-public       Active   18h
kube-system       Active   18h

当观察到metrics-server-bcfb98c76-k5dmj状态为Running,metrics-server服务就正常启动了

[root@k8scloude1 1.8+]# kubectl get pod -n kube-system -o wide
NAME                                       READY   STATUS    RESTARTS   AGE   IP                NODE         NOMINATED NODE   READINESS GATES
calico-kube-controllers-6b9fbfff44-4jzkj   1/1     Running   2          19h   10.244.251.194    k8scloude3
calico-node-bdlgm                          1/1     Running   1          19h   192.168.110.130   k8scloude1
calico-node-hx8bk                          1/1     Running   1          19h   192.168.110.128   k8scloude3
calico-node-nsbfs                          1/1     Running   1          19h   192.168.110.129   k8scloude2
coredns-545d6fc579-7wm95                   1/1     Running   1          19h   10.244.158.68     k8scloude1
coredns-545d6fc579-87q8j                   1/1     Running   1          19h   10.244.158.67     k8scloude1
etcd-k8scloude1                            1/1     Running   1          19h   192.168.110.130   k8scloude1
kube-apiserver-k8scloude1                  1/1     Running   1          19h   192.168.110.130   k8scloude1
kube-controller-manager-k8scloude1         1/1     Running   1          19h   192.168.110.130   k8scloude1
kube-proxy-599xh                           1/1     Running   1          19h   192.168.110.128   k8scloude3
kube-proxy-lpj8z                           1/1     Running   1          19h   192.168.110.129   k8scloude2
kube-proxy-zxlk9                           1/1     Running   1          19h   192.168.110.130   k8scloude1
kube-scheduler-k8scloude1                  1/1     Running   1          19h   192.168.110.130   k8scloude1
metrics-server-bcfb98c76-k5dmj             1/1     Running   0          70s   10.244.112.131    k8scloude2

5.2 查看node负载

查看node的负载

[root@k8scloude1 1.8+]# kubectl top node
W0110 11:37:47.025099   75026 top_node.go:119] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
k8scloude1   257m         12%    1487Mi          45%
k8scloude2   104m         5%     698Mi           36%
k8scloude3   102m         5%     701Mi           36%

5.3 查看pod负载

查看pod的负载

注释:一核心分成1000个微核心m 1核=1000m

[root@k8scloude1 1.8+]# kubectl top pods
W0110 11:38:40.576780   75696 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
No resources found in default namespace.

#-A表示所有命名空间
[root@k8scloude1 1.8+]# kubectl top pods -A
W0110 11:38:47.276962   75784 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
NAMESPACE     NAME                                       CPU(cores)   MEMORY(bytes)
kube-system   calico-kube-controllers-6b9fbfff44-4jzkj   2m           25Mi
kube-system   calico-node-bdlgm                          37m          170Mi
kube-system   calico-node-hx8bk                          43m          157Mi
kube-system   calico-node-nsbfs                          56m          164Mi
kube-system   coredns-545d6fc579-7wm95                   3m           18Mi
kube-system   coredns-545d6fc579-87q8j                   3m           18Mi
kube-system   etcd-k8scloude1                            14m          91Mi
kube-system   kube-apiserver-k8scloude1                  60m          351Mi
kube-system   kube-controller-manager-k8scloude1         21m          56Mi
kube-system   kube-proxy-599xh                           1m           24Mi
kube-system   kube-proxy-lpj8z                           1m           24Mi
kube-system   kube-proxy-zxlk9                           1m           24Mi
kube-system   kube-scheduler-k8scloude1                  3m           23Mi
kube-system   metrics-server-bcfb98c76-k5dmj             1m           13Mi

6.1 何为命名空间namespace

在 Kubernetes 中,命名空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。 同一命名空间内的资源名称要唯一,但跨命名空间时没有这个要求。 命名空间作用域仅针对带有命名空间的对象,例如 Deployment、Service 等, 这种作用域对集群访问的对象不适用,例如 StorageClass、Node、PersistentVolume 等。

6.2 管理命名空间namespace

查看所有的命名空间

[root@k8scloude1 1.8+]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   19h
kube-node-lease   Active   19h
kube-public       Active   19h
kube-system       Active   19h

[root@k8scloude1 1.8+]# kubectl get ns
NAME              STATUS   AGE
default           Active   19h
kube-node-lease   Active   19h
kube-public       Active   19h
kube-system       Active   19h

创建命名空间, 注意:不同的namespace之间相互隔离

[root@k8scloude1 1.8+]# kubectl create ns ns1
namespace/ns1 created

[root@k8scloude1 1.8+]# kubectl create ns ns2
namespace/ns2 created

[root@k8scloude1 1.8+]# kubectl get ns
NAME              STATUS   AGE
default           Active   19h
kube-node-lease   Active   19h
kube-public       Active   19h
kube-system       Active   19h
ns1               Active   6s
ns2               Active   4s

获取全局上下文,可以看到当前命名空间为default

[root@k8scloude1 ~]# kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   default

切换命名空间

#切换命名空间
[root@k8scloude1 ~]# kubectl config set-context --current --namespace=kube-system
Context "kubernetes-admin@kubernetes" modified.

[root@k8scloude1 ~]# kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   kube-system

#获取当前K8S上下文
[root@k8scloude1 ~]# kubectl config current-context
kubernetes-admin@kubernetes

6.2 使用kubens管理命名空间namespace

下载kubens,并授予可执行权限

[root@k8scloude1 ~]# wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubens

[root@k8scloude1 ~]# ll -h kubens
-rw-r--r-- 1 root root 5.5K 12月  8 15:46 kubens

[root@k8scloude1 ~]# chmod +x kubens

[root@k8scloude1 ~]# mv kubens /bin/

[root@k8scloude1 ~]# ls /bin/kubens
/bin/kubens

查看所有的命名空间

[root@k8scloude1 ~]# kubens
default
kube-node-lease
kube-public
kube-system
ns1
ns2

切换namespace

#切换namespace到kube-system
[root@k8scloude1 ~]# kubens kube-system
Context "kubernetes-admin@kubernetes" modified.

Active namespace is "kube-system".

#此时,默认查询的就是kube-system命名空间下的pod
[root@k8scloude1 ~]# kubectl get pods -o wide
NAME                                       READY   STATUS    RESTARTS   AGE   IP                NODE         NOMINATED NODE   READINESS GATES
calico-kube-controllers-6b9fbfff44-4jzkj   1/1     Running   2          20h   10.244.251.194    k8scloude3
calico-node-bdlgm                          1/1     Running   1          20h   192.168.110.130   k8scloude1
calico-node-hx8bk                          1/1     Running   1          20h   192.168.110.128   k8scloude3
calico-node-nsbfs                          1/1     Running   1          20h   192.168.110.129   k8scloude2
coredns-545d6fc579-7wm95                   1/1     Running   1          20h   10.244.158.68     k8scloude1
coredns-545d6fc579-87q8j                   1/1     Running   1          20h   10.244.158.67     k8scloude1
etcd-k8scloude1                            1/1     Running   1          20h   192.168.110.130   k8scloude1
kube-apiserver-k8scloude1                  1/1     Running   1          20h   192.168.110.130   k8scloude1
kube-controller-manager-k8scloude1         1/1     Running   1          20h   192.168.110.130   k8scloude1
kube-proxy-599xh                           1/1     Running   1          20h   192.168.110.128   k8scloude3
kube-proxy-lpj8z                           1/1     Running   1          20h   192.168.110.129   k8scloude2
kube-proxy-zxlk9                           1/1     Running   1          20h   192.168.110.130   k8scloude1
kube-scheduler-k8scloude1                  1/1     Running   1          20h   192.168.110.130   k8scloude1
metrics-server-bcfb98c76-k5dmj             1/1     Running   0          56m   10.244.112.131    k8scloude2

切换namespace到default

#切换namespace到default
[root@k8scloude1 ~]# kubens default
Context "kubernetes-admin@kubernetes" modified.

Active namespace is "default".

#此时,默认查询的就是default命名空间下的pod
[root@k8scloude1 ~]# kubectl get pods -o wide
No resources found in default namespace.

#要查询kube-public命名空间下的pod,使用-n kube-public指定
[root@k8scloude1 ~]# kubectl get pods -n kube-public
No resources found in kube-public namespace.

Original: https://www.cnblogs.com/renshengdezheli/p/16693557.html
Author: 人生的哲理
Title: 使用kubectl管理Kubernetes(k8s)集群:常用命令,查看负载,命名空间namespace管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582029/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CentOS7 源码安装Nginx及Nginx基本管理设置

    CentOS7 安装 参考文档 CentOS7最小安装后初始化安装工具 1:yum install net-tools 参考文档 2:源码安装wget 参考文档 或者执行 yum …

    Linux 2023年5月27日
    0110
  • Mysql多实例搭建部署

    【部署背景】 公司测试环境需求多个数据库实例,但是只分配一台MySQL机器,所以进行多实例部署。 【部署搭建】 创建软件包路径 mkdir /data/soft/package /…

    Linux 2023年6月8日
    096
  • win7系统 右击任务栏 资源管理器 弹出菜单“已固定”和“最近”项目不显示故障处理

    故障描述:右击任务栏中资源管理器图标时,弹出菜单只有”资源管理器”和”解除锁定”两个项目,”已固定”和&#8…

    Linux 2023年6月8日
    0101
  • 数据转换-整数字节数组

    任务详情 任务详情0. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 1 参考《GMT 0009-2012 SM2密码算法使用规范》第6节&#…

    Linux 2023年6月8日
    0130
  • Kubernetes 安装Redis集群

    一、Operator 以集群模式安装 可以在service_account和 operator后面加-n 参数指定namespace 这个yaml文件中使用的资源较高,测试环境可能…

    Linux 2023年5月28日
    062
  • U盘如何安装centos7系统?U盘安装centos7详细安装图解教程

    一般来说,无论是Windows还是linux的IOS系统镜像,我们都可以使用UltraIOS(软碟通)这款软件制作U盘启动工具,不过考虑到不少小白依然不会如何操作,所以今天考虑写一…

    Linux 2023年6月8日
    090
  • 消费税

    1994年税制改革时,我国才设置了独立的消费税,与实行普遍征收的增值税配套,对特定消费品进行特殊调节。 消费税的特点: (一)征税范围具有选择性 有选择地确定若干个征税项目,在税法…

    Linux 2023年6月14日
    0100
  • Linux 下安装 node.js

    这里介绍两种安装方式: 编译安装和使用编译后的安装包安装。 安装目录: /usr/local 一、使用编译安装包安装 1、进入安装目录: 2、下载安装包: 3、解压: 4、进入解压…

    Linux 2023年6月13日
    089
  • [Python]Tkinter 做简单的窗口视窗GUI(参考莫烦笔记)

    Label & Button 标签与按钮 Entry & Text 输入与文本框 ListBox 列表部件 Radiobutton 选择按钮 Scale 尺度 Ch…

    Linux 2023年6月13日
    0120
  • MySQL实现备份(3)之xtrabackup 备份工具

    xtrabackup工具: 是percona公司开发的一个用于对MySQL进行备份的工具。相对于mysqldump,xtrabackup支持增量备份、差异备份等。 使用手册;htt…

    Linux 2023年6月7日
    0123
  • 嵌入式软件架构设计-模块化

    1 前言 模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功…

    Linux 2023年6月7日
    0106
  • phpcms如何在前台文章列表前显示所属类别名称

    最近做单位网站模版遇到的问题,欲实现的效果: 但是phpcms中自带的文章列表标签没有这个功能,数据库中文章表中也只有类别id的字段,因此不能通过简单的{$r[catname]}读…

    Linux 2023年6月13日
    087
  • 小试牛刀:Linux中部署RabbitMQ

    一、下载地址 本人采用的是 RabbitMQ 3.8.20+ Erlang 23.3.4.16 1、Erlang下载:https://github.com/erlang/otp/r…

    Linux 2023年6月14日
    084
  • 一、Java分布式(第一章)

    单机架构:将一个项目所有的业务部署在一个服务器上,整个项目的所有服务都由这台服务器提供。单机架构的劣势已经体现出来了,当访问量越来越大,单机架构肯定撑不住。例如双十一的活动,单机架…

    Linux 2023年6月7日
    095
  • Java — 面向对象

    简介:类是对事物的一种描述,对象则为具体存在的事物。 类的定义: public class 类名 { // 成员变量 访问修饰符 数据类型 变量名; … // 成员方法 访问修…

    Linux 2023年6月8日
    083
  • Unable to install NuGet provider for PowerShell

    https://docs.microsoft.com/en-us/officeonlineserver/enable-tls-1-1-and-tls-1-2-support-in-…

    Linux 2023年5月28日
    064
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球