目录

  • 1. 命令式对象管理
  • 1.1 kubectl命令的语法
  • 1.2 常用的kubectl各种command
  • 1.3 常操作的kubectl各种type资源类型
  • 2. 命令式对象配置
  • 3. 声明式对象配置

1. 命令式对象管理

直接使用命令去操作kubernetes的资源,常用于测试

1.1 kubectl命令的语法

kubectl command [type] [name] [flags]

说明:

  • command:指定要对资源执行的操作,比如run、create、get、delete
  • type:指定资源的类型,比如deployment、pod、service
  • name:指定资源的名称,名称大小写敏感
  • flags:指定额外的可选参数

例如查看pod信息

[root@k8s-master ~]# kubectl get pods nginx-8f458dc5b-d4wnm -o wide
NAME                    READY   STATUS    RESTARTS      AGE   IP             NODE        NOMINATED NODE   READINESS GATES
nginx-8f458dc5b-d4wnm   1/1     Running   1 (29h ago)   29h   10.244.36.67   k8s-node1   <none>           <none>
[root@k8s-master ~]#

1.2 常用的kubectl各种command

基本命令:

命令

命令作用

create

创建一个资源

edit

编辑一个资源

get

获取一个资源

patch

更新一个资源

delete

删除一个资源

explain

显示资源文档

运行和调试:

命令

命令作用

run

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

expose

暴露资源为Service

describe

显示资源内部信息

logs

输出容器在Pod中的日志

attach

进入运行中的容器

exec

执行容器中的一个命令

cp

在Pod和内外复制文件

rollout

管理资源的发布

scale

扩(缩)容Pod的数量

autoscale

自动调整Pod的数量

高级命令:

命令

命令作用

apply

通过文件对资源进行创建或更新

label

更新资源上的标签

其他命令:

命令

命令作用

cluster-info

显示集群信息

version

显示当前Client和Server的版本

1.3 常操作的kubectl各种type资源类型

可以通过命令kubectl api-resources查看所有能操作的资源类型

集群级别资源:

资源名称

缩写

资源作用

nodes

no

集群组成部分

namespaces

ns

隔离Pod

Pod资源:

资源名称

缩写

资源作用

Pods

po

装载容器

Pod资源控制器:

资源名称

缩写

资源作用

replicationcontrollers

rc

控制Pod资源

replicasets

rs

控制Pod资源

deployments

deploy

控制Pod资源

daemonsets

ds

控制Pod资源

jobs

控制Pod资源

cronjobs

cj

控制Pod资源

horizontalpodautoscalers

hpa

控制Pod资源

statefulsets

sts

控制Pod资源

服务发现资源:

资源名称

缩写

资源作用

services

svc

统一Pod对外接口

ingress

ing

统一Pod对外接口

存储资源:

资源名称

缩写

资源作用

volumeattachments

存储

persistentvolumes

pv

存储

persistentvolumeclaims

pvc

存储

配置资源:

资源名称

缩写

资源作用

configmaps

cm

配置

secrets

配置

2. 命令式对象配置

通过命令(不含apply命令)和配置文件去操作kubernetes的资源

例如创建一个nginx-pod.yaml,内容如下

[root@k8s-master ~]# cat nginx-pod.yaml 
# 定义一个name为dev的namespace
apiVersion: v1
kind: Namespace
metadata:
  name: dev

---

# 定义一个运行nginx的pod
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: dev
spec:
  containers:
    - name: nginx-container
      image: nginx:1.21.6
      imagePullPolicy: IfNotPresent


[root@k8s-master ~]#

执行create命令,创建资源

[root@k8s-master ~]# kubectl create -f nginx-pod.yaml
namespace/dev created
pod/nginx-pod created
[root@k8s-master ~]#

3. 声明式对象配置

通过apply命令和配置文件去操作kubernetes的资源。可以同时操作一个目录下的多个配置文件,出现错误难调试

apply的资源不存在,则创建。存在则更新。相当于create和patch的组合

例如修改nginx-pod.yaml文件的nginx镜像版本为latest。再执行apply命令进行更新

[root@k8s-master ~]# kubectl apply -f nginx-pod.yaml 
namespace/dev unchanged
pod/nginx-pod configured
[root@k8s-master ~]#