Kubectl基础命令的使用

本文介绍了Kubectl的基础命令及其使用方法,包括编辑资源、动态扩展、自动扩展等操作,并提供了详细的实例说明。

Kubectl基础命令的使用

kubernetes基本概念

Pod:k8s最小部署单元,一组容器的集合

Deployment:最常见的控制器,用于更高级别部署和管理Pod

Service:为一组Pod提供负载均衡,对外提供统一访问入口

Label:标签,附加到某个资源上,用于关联对象、查询和筛选

Namespaces∶命名空间。将对象逻辑上隔离,也利于权限控制

edit(编辑资源)

#编辑一个资源
# 运行一个pod类型的nginx,名字叫nginx,定义的标签是app=nginx
[root@master ~]# kubectl run nginx --image=nginx --labels="app=nginx"
pod/nginx created
[root@master ~]# kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          12s

# 使用edit命令编辑
[root@master ~]# kubectl edit pods/nginx
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2021-12-20T09:26:53Z"
  labels:
    app: test  # 把原本app:nginx改为app:test
  name: nginx
  namespace: default

# 查看是否更改成功
[root@master ~]# kubectl describe pods/nginx
Name:         nginx
Namespace:    default
Priority:     0
Node:         node2.example.com/192.168.240.60
Start Time:   Mon, 20 Dec 2021 04:26:53 -0500
Labels:       app=test
Annotations:  <none>
Status:       Running
IP:           10.244.1.25

scale(动态扩展)

#创建一个deployment类型的nginx2的pod
[root@master ~]# kubectl create deployment nginx2 --image=nginx
deployment.apps/nginx2 created
[root@master ~]# kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
nginx                     1/1     Running   0          7m38s
nginx2-85bf7b8976-n9vcl   1/1     Running   0          13s

# 使用scale扩展
[root@master ~]# kubectl scale --replicas 4 deployment/nginx2
deployment.apps/nginx2 scaled
# 扩展后查看多了几个相同类型的pod
[root@master ~]# kubectl get pods
NAME                      READY   STATUS              RESTARTS   AGE
nginx                     1/1     Running             0          8m55s
nginx2-85bf7b8976-bmcq4   0/1     ContainerCreating   0          11s
nginx2-85bf7b8976-n9vcl   1/1     Running             0          90s
nginx2-85bf7b8976-qzfhz   0/1     ContainerCreating   0          11s
nginx2-85bf7b8976-xk594   0/1     ContainerCreating   0          11s

# 如果只需要2个deployment类型的nginx的pod
[root@master ~]#  kubectl scale --replicas 2 deployment/nginx2
deployment.apps/nginx2 scaled
[root@master ~]#  kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
nginx2-85bf7b8976-4dm2h   1/1     Running   0          39s
nginx2-85bf7b8976-fwj55   1/1     Running   0          49s

autoscale(自动扩展)

自动扩展,给定一个范围,自动根据业务的访问量增加或减少

[root@master ~]# kubectl autoscale --min=2 --max=7 --cpu-percent=60 deployment/nginx2
horizontalpodautoscaler.autoscaling/nginx2 autoscaled
[root@master ~]# kubectl get hpa
NAME     REFERENCE           TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
nginx    Deployment/nginx    <unknown>/80%   1         3         3          29m
nginx2   Deployment/nginx2   <unknown>/60%   2         7         0          10s

cluster-info(显示集群信息)

[root@master ~]# kubectl cluster-info
Kubernetes control 
<think>我们被要求提供kubectl常用命令,并且有多个引用可供参考。引用[1]和[2]都提供了kubectl的常用命令,引用[3]是一个具体的expose命令示例。 根据引用[1]和[2],我们可以整理出常用的kubectl命令,并按照一定的逻辑进行分组,以便用户理解和使用。 注意:我们还需要遵循系统级指令,包括使用正确的LaTeX格式(但在这个问题中,主要是命令列表,可能不需要数学公式,但如果有变量说明,我们会用行内公式格式),使用中文,生成相关问题等。 我们计划: 1. 分类整理常用命令(如查看资源、操作资源、调试等) 2. 每个命令给出示例和简短说明 3. 根据引用内容,注意命名空间参数的使用 4. 在最后生成相关问题 注意:引用[1]中提到了-n参数用于指定命名空间,默认为default。引用[2]中提供了很多简写形式(如cm, sa, ds, deploy, rs, sts, jobs, ing, ns)以及一些查看资源使用情况的命令(需要heapster或metrics-server支持)。 我们还可以补充一些其他常用命令,比如创建、删除、编辑等,但引用中未直接给出,但用户可能需要。不过,根据问题,用户要求的是常用命令,我们主要基于引用提供的信息,适当补充一些基本命令。 由于引用[3]给出了一个expose命令的示例,我们也会包含它。 结构: 一、查看资源 二、操作资源(如创建、删除、编辑等) 三、调试和日志 四、其他常用命令 注意:引用中提供的信息有限,我们以引用为主,适当补充最常用的命令(如kubectl create, kubectl apply, kubectl delete, kubectl logs等),因为这些命令非常基础且常用。 开始整理: </think> 以下是 Kubernetes 命令行工具 `kubectl` 的常用命令整理,结合集群资源管理和日常操作场景分类说明: --- ### **1. 资源查看命令** - **查看资源列表** ```bash kubectl get <资源类型> -n <命名空间> # 默认命名空间为 default ``` 常用资源类型简写: `pod`(容器组)、`svc`(服务)、`deploy`(部署)、`cm`(ConfigMap)、`ing`(Ingress)、`ns`(命名空间)、`rs`(ReplicaSet)、`sts`(StatefulSet)、`jobs`(Job) 示例: ```bash kubectl get pods -A # 查看所有命名空间的 Pod kubectl get deploy -n test # 查看 test 命名空间的部署 ``` - **查看资源详情** ```bash kubectl describe <资源类型>/<资源名> -n <命名空间> ``` 示例: ```bash kubectl describe pod/nginx-7dfd6f7b5c-abcde -n default ``` - **查看资源使用指标**(需安装 metrics-server) ```bash kubectl top nodes # 节点资源使用 kubectl top pods # Pod 资源使用 ``` --- ### **2. 资源操作命令** - **创建/更新资源** ```bash kubectl apply -f <YAML文件> # 通过配置文件创建或更新 kubectl create deployment nginx --image=nginx # 直接创建部署 ``` - **暴露服务** ```bash kubectl expose deploy/nginx --port=80 --target-port=80 --type=NodePort ``` 此命令将部署 `nginx` 暴露为 NodePort 类型服务,外部可通过节点 IP 访问[^3]。 - **删除资源** ```bash kubectl delete <资源类型>/<资源名> -n <命名空间> kubectl delete -f <YAML文件> # 通过配置文件删除 ``` --- ### **3. 调试与日志命令** - **查看日志** ```bash kubectl logs <Pod名> -n <命名空间> # 查看 Pod 日志 kubectl logs -f <Pod名> -c <容器名> # 实时跟踪容器日志 ``` - **进入容器终端** ```bash kubectl exec -it <Pod名> -n <命名空间> -- /bin/bash ``` - **端口转发**(本地访问集群内服务) ```bash kubectl port-forward svc/<服务名> 8080:80 -n <命名空间> ``` --- ### **4. 集群管理命令** - **查看集群信息** ```bash kubectl cluster-info # 集群基本信息 kubectl get componentstatuses # 组件状态(简写 `kubectl get cs`)[^2] kubectl get nodes # 查看所有节点 ``` - **上下文与配置** ```bash kubectl config view # 查看 kubeconfig 配置 kubectl config use-context <上下文名> # 切换集群上下文 ``` --- ### **5. 实用简写速查** | 资源类型 | 简写 | 示例命令 | |----------------|------|--------------------------| | `configmaps` | `cm` | `kubectl get cm -A` | | `serviceaccounts` | `sa` | `kubectl get sa -A` | | `daemonsets` | `ds` | `kubectl get ds -A` | | `replicasets` | `rs` | `kubectl get rs -A` | | `statefulsets` | `sts`| `kubectl get sts -A` | | `jobs` | `jobs`| `kubectl get jobs -A` | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值