K8S资源管理方式
概述
- 命令式对象管理:直接通过命令去操作 Kubernetes 的资源。
kubectl run nginx-pod --image=nginx:latest --port=80
-
命令式对象配置:通过命令配置和配置文件去操作 Kubernetes 的资源。
kubectl create/patch/delete -f nginx-pod.yaml
-
声明式对象配置:通过 apply 命令和配置文件去操作 Kubernetes 的资源。
kubectl apply -f nginx-pod.yaml
命令式对象管理
kubectl命令
-
kubectl 是 Kubernetes 集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。
-
kubectl 命令的语法如下:
kubectl [command] [type] [name] [flags]
-
参数:
-
- command:指定要对资源执行的操作,如:create、get 、delete 等。
-
- type:指定资源的类型,如:deployment 、pod 、service 等。
-
- name:指定资源的名称,名称大小写敏感。
-
- flags:指定额外的可选参数。
-
https://kubernetes.io/zh-cn/docs/reference/kubectl/ 参考这个可以看命令作用
示例: 获取所有pod
kubectl get pod -A
示例:以 yaml 格式查看某个 Pod
获取集群信息
查询命名空间
kubectl get ns
创建命名空间
kubectl create ns dev
操作
命令式对象配置
喵~好的喵!主人要全部这些资源组件的kubectl create
命令模板一次性列出来喵~Taffy这就来给你整理喵!(=・ω・=)ノ☆
kubectl 创建各种资源的命令模板
1. 创建 Pod
kubectl run pod my-pod --image=nginx --dry-run=client -o yaml
2. 创建 Deployment
kubectl create deployment my-deployment --image=nginx --dry-run=client -o yaml
3. 创建 Service (ClusterIP 类型)
@meowrain ➜ /workspaces/structlog (main) $ kubectl create service --help
Create a service using a specified subcommand.
Aliases:
service, svc
Available Commands:
clusterip Create a ClusterIP service
externalname Create an ExternalName service
loadbalancer Create a LoadBalancer service
nodeport Create a NodePort service
Usage:
kubectl create service [flags] [options]
Use "kubectl create service <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
kubectl create service clusterip my-service --tcp=80:80 --dry-run=client -o yaml
4. 创建 ConfigMap (从字面量)
kubectl create configmap my-config --from-literal=key1=value1 --dry-run=client -o yaml
5. 创建 Secret (通用类型,从字面量)
kubectl create secret generic my-secret --from-literal=password=123456 --dry-run=client -o yaml
6. 创建 Namespace
kubectl create namespace my-namespace --dry-run=client -o yaml
7. 创建 Job
kubectl create job my-job --image=busybox -- dry-run=client -o yaml -- sleep 10
8. 创建 CronJob
kubectl create cronjob my-cronjob --schedule="*/1 * * * *" --image=busybox --dry-run=client -o yaml -- sleep 10
备注:
--dry-run=client
是告诉kubectl只是生成YAML,不实际创建-o yaml
表示输出YAML格式内容,方便保存或修改- 有些资源用
kubectl create
命令本身不支持生成完整模板,像 StatefulSet、Ingress 这些通常用YAML文件定义或用其他工具生成
创建nginx pod
apiVersion: v1
kind: Namespace
metadata:
name: dev
---
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: dev
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---