k8s中kubectl命令式对象、命令式对象配置、声明式对象配置管理资源介绍

目录

一.kubernetes资源管理简介

二.三种资源管理方式优缺点比较

三.命令式对象管理介绍

1.kubectl命令语法格式

2.资源类型

(1)通过“kubectl api-resources”来查看所有的资源

(2)每列含义

(3)常用资源介绍 ​编辑

3.kubectl命令支持命令

(1)获取命令帮助

(2)常用命令介绍 ​编辑

4.常用命令示例

5.kubectl格式化输出可选格式

四.命令式对象配置介绍

五.声明式对象配置

1.kubectl apply

2.操作多个文件内的资源


一.kubernetes资源管理简介

1.实际上kubernetes是一个集群管理系统,管理者在这个系统中运行容器、将程序运行在容器中,以此来部署服务。

2.在前面介绍k8s的工作流程来看,kubernetes的最小管理单元是pod,需要将容器放在pod中,再通过pod控制器来管理pod。

3.考虑到pod服务的相关管理,kubernetes支持service服务管理、便于数据持久化的存储系统等。其中,pod控制器、service管理、数据存储是关键技能。

二.三种资源管理方式优缺点比较

管理方式描述操作对象和使用环境优点缺点示例代码
命令式对象管理使用命令直接操作资源操作”对象“,适用于测试环境简易上手不支持审计跟踪
命令式对象配置使用命令配置和文件配置操作资源操作“文件”,适用于开发环境支持审计跟踪大项目配置文件繁琐时,很麻烦
声明式对象配置apply命令和配置文件操作资源操作“目录或文件”,适用于开发环境支持对目录的操作发生意外情况,资源将变得难以调试管理

三.命令式对象管理介绍

直接使用命令行

1.kubectl命令语法格式

kubectl 命令 资源类型 资源名称 (其他参数)
类别可选项
命令要对资源进行的操作,create、get等
资源类型pod、node、deployment等,具体看下文
资源名称此项对大小写很敏感,像pod名称等

2.资源类型

(1)通过“kubectl api-resources”来查看所有的资源

[root@k8s-master ~]# kubectl api-resources 
NAME                              SHORTNAMES   APIVERSION                             NAMESPACED   KIND
bindings                                       v1                                     true         Binding
componentstatuses                 cs           v1                                     false        ComponentStatus
configmaps                        cm           v1                                     true         ConfigMap
endpoints                         ep           v1                                     true         Endpoints
events                            ev           v1                                     true         Event
limitranges                       limits       v1                                     true         LimitRange
namespaces                        ns           v1                                     false        Namespace
nodes                             no           v1                                     false        Node
persistentvolumeclaims            pvc          v1                                     true         PersistentVolumeClaim
persistentvolumes                 pv           v1                                     false        PersistentVolume
pods                              po           v1                                     true         Pod
podtemplates                                   v1                                     true         PodTemplate
replicationcontrollers            rc           v1                                     true         ReplicationController
resourcequotas                    quota        v1                                     true         ResourceQuota
secrets                                        v1                                     true         Secret
serviceaccounts                   sa           v1                                     true         ServiceAccount
services                          svc          v1                                     true         Service
mutatingwebhookconfigurations                  admissionregistration.k8s.io/v1        false        MutatingWebhookConfiguration
validatingwebhookconfigurations                admissionregistration.k8s.io/v1        false        ValidatingWebhookConfiguration
customresourcedefinitions         crd,crds     apiextensions.k8s.io/v1                false        CustomResourceDefinition
apiservices                                    apiregistration.k8s.io/v1              false        APIService
controllerrevisions                            apps/v1                                true         ControllerRevision
daemonsets                        ds           apps/v1                                true         DaemonSet
deployments                       deploy       apps/v1                                true         Deployment
replicasets                       rs           apps/v1                                true         ReplicaSet
statefulsets                      sts          apps/v1                                true         StatefulSet
selfsubjectreviews                             authentication.k8s.io/v1               false        SelfSubjectReview
tokenreviews                                   authentication.k8s.io/v1               false        TokenReview
localsubjectaccessreviews                      authorization.k8s.io/v1                true         LocalSubjectAccessReview
selfsubjectaccessreviews                       authorization.k8s.io/v1                false        SelfSubjectAccessReview
selfsubjectrulesreviews                        authorization.k8s.io/v1                false        SelfSubjectRulesReview
subjectaccessreviews                           authorization.k8s.io/v1                false        SubjectAccessReview
horizontalpodautoscalers          hpa          autoscaling/v2                         true         HorizontalPodAutoscaler
cronjobs                          cj           batch/v1                               true         CronJob
jobs                                           batch/v1                               true         Job
certificatesigningrequests        csr          certificates.k8s.io/v1                 false        CertificateSigningRequest
leases                                         coordination.k8s.io/v1                 true         Lease
bgpconfigurations                              crd.projectcalico.org/v1               false        BGPConfiguration
bgppeers                                       crd.projectcalico.org/v1               false        BGPPeer
blockaffinities                                crd.projectcalico.org/v1               false        BlockAffinity
caliconodestatuses                             crd.projectcalico.org/v1               false        CalicoNodeStatus
clusterinformations                            crd.projectcalico.org/v1               false        ClusterInformation
felixconfigurations                            crd.projectcalico.org/v1               false        FelixConfiguration
globalnetworkpolicies                          crd.projectcalico.org/v1               false        GlobalNetworkPolicy
globalnetworksets                              crd.projectcalico.org/v1               false        GlobalNetworkSet
hostendpoints                                  crd.projectcalico.org/v1               false        HostEndpoint
ipamblocks                                     crd.projectcalico.org/v1               false        IPAMBlock
ipamconfigs                                    crd.projectcalico.org/v1               false        IPAMConfig
ipamhandles                                    crd.projectcalico.org/v1               false        IPAMHandle
ippools                                        crd.projectcalico.org/v1               false        IPPool
ipreservations                                 crd.projectcalico.org/v1               false        IPReservation
kubecontrollersconfigurations                  crd.projectcalico.org/v1               false        KubeControllersConfiguration
networkpolicies                                crd.projectcalico.org/v1               true         NetworkPolicy
networksets                                    crd.projectcalico.org/v1               true         NetworkSet
endpointslices                                 discovery.k8s.io/v1                    true         EndpointSlice
events                            ev           events.k8s.io/v1                       true         Event
flowschemas                                    flowcontrol.apiserver.k8s.io/v1beta3   false        FlowSchema
prioritylevelconfigurations                    flowcontrol.apiserver.k8s.io/v1beta3   false        PriorityLevelConfiguration
ingressclasses                                 networking.k8s.io/v1                   false        IngressClass
ingresses                         ing          networking.k8s.io/v1                   true         Ingress
networkpolicies                   netpol       networking.k8s.io/v1                   true         NetworkPolicy
runtimeclasses                                 node.k8s.io/v1                         false        RuntimeClass
poddisruptionbudgets              pdb          policy/v1                              true         PodDisruptionBudget
clusterrolebindings                            rbac.authorization.k8s.io/v1           false        ClusterRoleBinding
clusterroles                                   rbac.authorization.k8s.io/v1           false        ClusterRole
rolebindings                                   rbac.authorization.k8s.io/v1           true         RoleBinding
roles                                          rbac.authorization.k8s.io/v1           true         Role
priorityclasses                   pc           scheduling.k8s.io/v1                   false        PriorityClass
csidrivers                                     storage.k8s.io/v1                      false        CSIDriver
csinodes                                       storage.k8s.io/v1                      false        CSINode
csistoragecapacities                           storage.k8s.io/v1                      true         CSIStorageCapacity
storageclasses                    sc           storage.k8s.io/v1                      false        StorageClass
volumeattachments                              storage.k8s.io/v1                      false        VolumeAttachment

(2)每列含义

NAME表示资源名称

SHORTNAMES表示该资源的缩写

APIVERSION表示API版本(是kubectl api-versions查看到的实际版本)

NAMESPACED表示是否使用命名空间隔离

KIND表示API类型

(3)常用资源介绍 

3.kubectl命令支持命令

(1)获取命令帮助

[root@k8s-master ~]# kubectl --help
kubectl controls the Kubernetes cluster manager.
​
 Find more information at: https://kubernetes.io/docs/reference/kubectl/
​
Basic Commands (Beginner):
  create          Create a resource from a file or from stdin
  expose          Take a replication controller, service, deployment or pod and expose it as a new Kubernetes service
  run             Run a particular image on the cluster
  set             Set specific features on objects
​
Basic Commands (Intermediate):
  explain         Get documentation for a resource
  get             Display one or many resources
  edit            Edit a resource on the server
  delete          Delete resources by file names, stdin, resources and names, or by resources and label selector
​
Deploy Commands:
  rollout         Manage the rollout of a resource
  scale           Set a new size for a deployment, replica set, or replication controller
  autoscale       Auto-scale a deployment, replica set, stateful set, or replication controller
​
Cluster Management Commands:
  certificate     Modify certificate resources
  cluster-info    Display cluster information
  top             Display resource (CPU/memory) usage
  cordon          Mark node as unschedulable
  uncordon        Mark node as schedulable
  drain           Drain node in preparation for maintenance
  taint           Update the taints on one or more nodes
​
Troubleshooting and Debugging Commands:
  describe        Show details of a specific resource or group of resources
  logs            Print the logs for a container in a pod
  attach          Attach to a running container
  exec            Execute a command in a container
  port-forward    Forward one or more local ports to a pod
  proxy           Run a proxy to the Kubernetes API server
  cp              Copy files and directories to and from containers
  auth            Inspect authorization
  debug           Create debugging sessions for troubleshooting workloads and nodes
  events          List events
​
Advanced Commands:
  diff            Diff the live version against a would-be applied version
  apply           Apply a configuration to a resource by file name or stdin
  patch           Update fields of a resource
  replace         Replace a resource by file name or stdin
  wait            Experimental: Wait for a specific condition on one or many resources
  kustomize       Build a kustomization target from a directory or URL
​
Settings Commands:
  label           Update the labels on a resource
  annotate        Update the annotations on a resource
  completion      Output shell completion code for the specified shell (bash, zsh, fish, or powershell)
​
Other Commands:
  api-resources   Print the supported API resources on the server
  api-versions    Print the supported API versions on the server, in the form of "group/version"
  config          Modify kubeconfig files
  plugin          Provides utilities for interacting with plugins
  version         Print the client and server version information
​
Usage:
  kubectl [flags] [options]

(2)常用命令介绍 

4.常用命令示例

(1)查看所有的pod或指定名称空间下的pod

[root@k8s-master ~]# kubectl get pods -A
​
[root@k8s-master ~]# kubectl get pods -n kube-system

(2)查看所有节点和名称空间

[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES           AGE   VERSION
k8s-master   Ready    control-plane   23m   v1.28.2
k8s-node1    Ready    <none>          22m   v1.28.2
k8s-node2    Ready    <none>          22m   v1.28.2
[root@k8s-master ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   23m
kube-node-lease   Active   23m
kube-public       Active   23m
kube-system       Active   23m

(3)查看资源的具体文档

[root@k8s-master ~]# kubectl explain pod
KIND:       Pod
VERSION:    v1
​
DESCRIPTION:
    Pod is a collection of containers that can run on a host. This resource is
    created by clients and scheduled onto hosts.
    
FIELDS:
  apiVersion    <string>
    APIVersion defines the versioned schema of this representation of an object.
    Servers should convert recognized schemas to the latest internal value, and
    may reject unrecognized values. More info:
    https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
​
  kind  <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/sig-architecture/api-conventions.md#types-kinds
​
  metadata  <ObjectMeta>
    Standard object's metadata. More info:
    https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
​
  spec  <PodSpec>
    Specification of the desired behavior of the pod. More info:
    https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
​
  status    <PodStatus>
    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/sig-architecture/api-conventions.md#spec-and-status
​
​
[root@k8s-master ~]# kubectl explain pod.spec #以这种形式指定查看具体某个部分的文档,一层一层

(4)显示资源内部详细信息,多用于节点排错分析

需要在pod后指定pod名称,-n指定该pod位于的名称空间

[root@k8s-master ~]# kubectl describe pod calico-node-58k7l -n kube-system

(5)创建名称空间并在其中运行pod

[root@k8s-master ~]# kubectl create ns myns
namespace/myns created
[root@k8s-master ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   38m
kube-node-lease   Active   38m
kube-public       Active   38m
kube-system       Active   38m
myns              Active   3s
[root@k8s-master ~]# kubectl run pod --image=nginx -n myns
pod/pod created
[root@k8s-master ~]# kubectl get pods -n myns
NAME   READY   STATUS    RESTARTS   AGE
pod    1/1     Running   0          22s

(6)删除pod和namespace

[root@k8s-master ~]# kubectl get pods -n myns
NAME   READY   STATUS    RESTARTS   AGE
pod    1/1     Running   0          22s
[root@k8s-master ~]# kubectl delete pod pod -n myns
pod "pod" deleted
[root@k8s-master ~]# kubectl delete ns myns
namespace "myns" deleted
​
[root@k8s-master ~]# kubectl get pods -n myns
No resources found in myns namespace.

5.kubectl格式化输出可选格式

(1)格式介绍

格式含义说明
-o yaml将其转化为yaml格式
-o json将其转化为json格式
-o wide将其以宽格式输出
-o name只输出资源对象的名称
-o custom-columns<>根据自定义的列名输出
-o custom-columns-file<>将自定义列名的命令以文件形式记录
--server-print=false关闭显示一些特殊信息
--sort-by根据指定字段进行排序

(2)示例

将命令行命令转化为yaml文件但不运行

[root@k8s-master ~]# kubectl run httpd1 --image=httpd -n myns --dry-run=client -o yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: httpd1
  name: httpd1
  namespace: myns
spec:
  containers:
  - image: httpd
    name: httpd1
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

 转化为json格式不运行

[root@k8s-master ~]# kubectl run httpd1 --image=httpd -n myns --dry-run=client -o json
{
    "kind": "Pod",
    "apiVersion": "v1",
    "metadata": {
        "name": "httpd1",
        "namespace": "myns",
        "creationTimestamp": null,
        "labels": {
            "run": "httpd1"
        }
    },
    "spec": {
        "containers": [
            {
                "name": "httpd1",
                "image": "httpd",
                "resources": {}
            }
        ],
        "restartPolicy": "Always",
        "dnsPolicy": "ClusterFirst"
    },
    "status": {}
}

 以宽格式显示

[root@k8s-master ~]# kubectl get pods -n myns -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
httpd   1/1     Running   0          13m   10.244.169.131   k8s-node2   <none>           <none>
nginx   1/1     Running   0          13m   10.244.36.65     k8s-node1   <none>           <none>

 查看myns内的pod但只输出资源对象的名称

[root@k8s-master ~]# kubectl get pods -n myns -o name
pod/httpd
pod/nginx

 根据自定义列名输出

#关于这个获取值的来源是pod的explain里获取到的
[root@k8s-master ~]# kubectl get pods -n myns -o custom-columns=MYNAME:.metadata.name,MYIP:.status.podIP
MYNAME   MYIP
httpd    10.244.169.131
nginx    10.244.36.65

[root@k8s-master ~]# kubectl get pods -n myns -o yaml
apiVersion: v1
items:
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      cni.projectcalico.org/containerID: defdaf44f2101595faed680814b72094a3f3e5a5e7be500d04e171215f49c5d3
      cni.projectcalico.org/podIP: 10.244.169.131/32
      cni.projectcalico.org/podIPs: 10.244.169.131/32
    creationTimestamp: "2023-10-31T09:08:29Z"
    labels:
      run: httpd
    name: httpd
    namespace: myns
    resourceVersion: "961"
    uid: 4cc0df5b-19e0-421a-90a7-ccd16ef3727c
  spec:
    containers:
    - image: httpd
      imagePullPolicy: Always
      name: httpd
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-bgl8q
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    nodeName: k8s-node2
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Always
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: default
    serviceAccountName: default
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
      tolerationSeconds: 300
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
      tolerationSeconds: 300
    volumes:
    - name: kube-api-access-bgl8q
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:08:29Z"
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:09:12Z"
      status: "True"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:09:12Z"
      status: "True"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:08:29Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: containerd://be8ca922d2b16d5243f84ae06dda2c0735dae83133a15d5ba0957f5455720d4f
      image: docker.io/library/httpd:latest
      imageID: docker.io/library/httpd@sha256:ed6db4a8c394d075c9c59a3dbd61a3818cd302d9948057f1e19046e5bffec027
      lastState: {}
      name: httpd
      ready: true
      restartCount: 0
      started: true
      state:
        running:
          startedAt: "2023-10-31T09:09:12Z"
    hostIP: 192.168.2.152
    phase: Running
    podIP: 10.244.169.131
    podIPs:
    - ip: 10.244.169.131
    qosClass: BestEffort
    startTime: "2023-10-31T09:08:29Z"
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      cni.projectcalico.org/containerID: 2548da464094dc236833d240d3bb75f7586b732d08326179967ca9836e24df07
      cni.projectcalico.org/podIP: 10.244.36.65/32
      cni.projectcalico.org/podIPs: 10.244.36.65/32
    creationTimestamp: "2023-10-31T09:08:17Z"
    labels:
      run: nginx
    name: nginx
    namespace: myns
    resourceVersion: "872"
    uid: e499fbcc-4c0c-41e6-90d1-f998b7bff754
  spec:
    containers:
    - image: nginx
      imagePullPolicy: Always
      name: nginx
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-5rc8h
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    nodeName: k8s-node1
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Always
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: default
    serviceAccountName: default
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
      tolerationSeconds: 300
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
      tolerationSeconds: 300
    volumes:
    - name: kube-api-access-5rc8h
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:08:17Z"
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:08:21Z"
      status: "True"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:08:21Z"
      status: "True"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2023-10-31T09:08:17Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: containerd://2c5e82409afd496dbb61b7eedab126b130e6bb20572ebe6b901fb574d25c7a28
      image: docker.io/library/nginx:latest
      imageID: docker.io/library/nginx@sha256:add4792d930c25dd2abf2ef9ea79de578097a1c175a16ab25814332fe33622de
      lastState: {}
      name: nginx
      ready: true
      restartCount: 0
      started: true
      state:
        running:
          startedAt: "2023-10-31T09:08:21Z"
    hostIP: 192.168.2.151
    phase: Running
    podIP: 10.244.36.65
    podIPs:
    - ip: 10.244.36.65
    qosClass: BestEffort
    startTime: "2023-10-31T09:08:17Z"
kind: List
metadata:
  resourceVersion: ""

 以自定义列名文件输出

[root@k8s-master ~]# cat custom.txt 
MYNAME             MYIP
metadata.name      status.podIP

[root@k8s-master ~]# kubectl get pods -n myns -o=custom-columns-file=custom.txt
MYNAME   MYIP
httpd    10.244.169.131
nginx    10.244.36.65

 不显示这些pod的特定信息

[root@k8s-master ~]# kubectl get pods -n myns --server-print=false
NAME    AGE
httpd   32m
nginx   33m

 根据指定字段排序

[root@k8s-master ~]# kubectl get pods -n myns --sort-by .status.podIP
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          35m
httpd   1/1     Running   0          35m

四.命令式对象配置介绍

使用命令和文件进行操作

示例:通过kubectl命令+yaml文件,创建myns名称空间,再在其中运行nginx的pod

[root@k8s-master ~]# cat nginxpod.yaml 
apiVersion: v1
kind: Namespace        #指定类型为namespace
metadata:             #创建名称空间
  name: myns
​
---
​
apiVersion: v1
kind: Pod
metadata:
  name: nginxpod
  namespace: myns
spec:
  containers:                  #使用nginx镜像进行运行pod
  - name: nginx-containers
    image: nginx
​
[root@k8s-master ~]# kubectl create -f nginxpod.yaml   #指定文件进行创建
namespace/myns created
pod/nginxpod created
[root@k8s-master ~]# kubectl get -f nginxpod.yaml     #获取文件中的所有资源的状态
NAME             STATUS   AGE
namespace/myns   Active   6s
​
NAME           READY   STATUS    RESTARTS   AGE
pod/nginxpod   1/1     Running   0          6s
​
[root@k8s-master ~]# kubectl delete -f  nginxpod.yaml    #删除文件中所有资源,这里包括namespace和pod
namespace "myns" deleted
pod "nginxpod" deleted

五.声明式对象配置

基本上同命令式对象配置,但只有apply命令

1.kubectl apply

apply -f 指定配置资源文件,资源存在时重复执行后会报资源未发生改变(相当于kubectl patch更新),在声明式对象配置中仍然是可以进行文件内资源的get和delete

[root@k8s-master ~]# kubectl apply -f nginxpod.yaml 
namespace/myns created
pod/nginxpod created
[root@k8s-master ~]# kubectl apply -f nginxpod.yaml 
namespace/myns unchanged
pod/nginxpod unchanged
[root@k8s-master ~]# kubectl get -f nginxpod.yaml 
NAME             STATUS   AGE
namespace/myns   Active   16s
​
NAME           READY   STATUS    RESTARTS   AGE
pod/nginxpod   1/1     Running   0          16s
[root@k8s-master ~]# kubectl delete -f nginxpod.yaml 
namespace "myns" deleted
pod "nginxpod" deleted

2.操作多个文件内的资源

[root@k8s-master nginx]# ll
total 8
-rw-r--r-- 1 root root 197 Oct 29 20:19 nginxpod1.yaml
-rw-r--r-- 1 root root 197 Oct 29 20:20 nginxpod2.yaml
[root@k8s-master nginx]# kubectl apply -f ./
namespace/myns1 created
pod/nginxpod created
namespace/myns2 created
pod/nginxpod created
[root@k8s-master nginx]# kubectl get -f ./
NAME              STATUS   AGE
namespace/myns1   Active   15s
​
NAME           READY   STATUS    RESTARTS   AGE
pod/nginxpod   1/1     Running   0          15s
​
NAME              STATUS   AGE
namespace/myns2   Active   15s
​
NAME           READY   STATUS              RESTARTS   AGE
pod/nginxpod   0/1     ContainerCreating   0          15s
[root@k8s-master nginx]# kubectl delete -f ./
namespace "myns1" deleted
pod "nginxpod" deleted
namespace "myns2" deleted
pod "nginxpod" deleted
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kubernetes(简称k8s)是一种流行的容器编排和管理系统,它能够帮助我们更轻松地部署、扩展和管理容器化的应用程序。搭建傻瓜k8s教学环境可以让初学者更容易理解和上手。 要搭建傻瓜教学环境,首先我们需要选择一个合适的虚拟机或云平台。常见的选择包括VirtualBox、VMware、AWS、GCP等。根据个人的喜好和需求,选一个自己最舒适的平台进行搭建。 安装完成后,我们需要下载和安装Docker以及Kubernetes工具。Docker用来创建和管理容器,而Kubernetes则用来编排和管理这些容器。在安装过程,可以选择安装适合自己操作系统的版本,并跟随教程逐步完成。 接下来,我们可以设置一个虚拟网络和配置环境变量。Kubernetes需要一个私有网络来部署和通信,我们可以通过设置一些网络参数和环境变量来实现。这些参数包括网络IP地址范围、主机名称等。具体的设置方法可以参考相关文档或教程。 完成以上步骤后,我们就可以开始创建和管理容器了。首先,我们需要创建一个Kubernetes集群。集群由多台主机组成,每台主机上都运行着Docker以及Kubernetes。在集群,我们可以使用kubectl命令行工具来操作和管理容器。例如,我们可以使用kubectl创建、删除、扩展和管理容器,也可以通过监控和日志来跟踪容器运行状态。 最后,我们需要编写一个简单的示例应用程序,并通过Kubernetes进行部署和管理。可以选择一个简单的Web应用程序,如Hello World,或者使用一个现有的应用程序进行演示。在部署过程,我们需要创建一个容器映像、定义容器的资源需求、指定容器的副本数等。通过kubectl命令,我们可以将应用程序部署到集群,并随时监控和管理。 总结而言,搭建傻瓜教学环境包括选择合适的虚拟机或云平台、安装Docker和Kubernetes工具、设置虚拟网络和环境变量、创建和管理容器、编写示例应用程序以及部署和管理应用程序。通过这样一个简单的教学环境,初学者可以更容易地理解和学习Kubernetes的基本概念和使用方法。希望这样一个简单的指导能够帮助大家更好地上手Kubernetes

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树下一少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值