外观
K3s 集群基本操作指令
概述
本指南介绍了 K3s 集群的基本操作,包括节点管理、服务管理、部署管理等常用命令。
目标
- 掌握 K3s 集群的基本操作命令
- 能够进行日常的集群维护和管理
- 理解各种资源的管理方式
前置条件
- 已成功部署 K3s 集群
- 具备集群访问权限
- 熟悉基本的 Linux 命令行操作
步骤
集群信息查看
查看集群信息
bash
kubectl cluster-info查看节点状态
bash
kubectl get nodes查看节点详细信息
bash
kubectl describe node <node-name>Pod 管理
查看所有 Pod
bash
kubectl get pods -A查看特定命名空间的 Pod
bash
kubectl get pods -n <namespace>查看 Pod 详细信息
bash
kubectl describe pod <pod-name> -n <namespace>查看 Pod 日志
bash
kubectl logs <pod-name> -n <namespace>进入 Pod 容器
bash
kubectl exec -it <pod-name> -n <namespace> -- shDeployment 管理
创建 Deployment
bash
kubectl create deployment nginx --image=nginx查看 Deployment
bash
kubectl get deployments扩缩容 Deployment
bash
kubectl scale deployment nginx --replicas=3更新 Deployment 镜像
bash
kubectl set image deployment/nginx nginx=nginx:1.19删除 Deployment
bash
kubectl delete deployment nginxService 管理
创建 Service
bash
kubectl expose deployment nginx --port=80 --type=NodePort查看 Service
bash
kubectl get services使用简短别名查看 Service
bash
kubectl get svc查看所有命名空间下的 Service
bash
kubectl get svc -A查看特定命名空间下的所有 Service
bash
kubectl get svc -n <namespace>通过 YAML 格式查看 Service 详细信息
bash
kubectl get service <service-name> -o yaml编辑 Service
bash
kubectl edit service <service-name>为 Service 添加标签
bash
kubectl label service <service-name> key=value查看 Service 的端点
bash
kubectl get endpoints <service-name>查看 Service 详细信息
bash
kubectl describe service <service-name>删除 Service
bash
kubectl delete service <service-name>Ingress 管理
查看 Ingress 控制器
bash
kubectl get ingressclasses创建 Ingress (示例)
bash
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
EOF查看 Ingress
bash
kubectl get ingress查看 Ingress 详细信息
bash
kubectl describe ingress <ingress-name>删除 Ingress
bash
kubectl delete ingress <ingress-name>存储卷管理
查看 PersistentVolume (PV)
bash
kubectl get pv查看 PersistentVolumeClaim (PVC)
bash
kubectl get pvc查看 PVC 详细信息
bash
kubectl describe pvc <pvc-name>创建 PersistentVolumeClaim (示例)
bash
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
EOF命名空间管理
查看所有命名空间
bash
kubectl get namespaces创建命名空间
bash
kubectl create namespace <namespace-name>删除命名空间
bash
kubectl delete namespace <namespace-name>配置管理
创建 ConfigMap
bash
kubectl create configmap <configmap-name> --from-literal=key=value查看 ConfigMap
bash
kubectl get configmaps删除 ConfigMap
bash
kubectl delete configmap <configmap-name>密钥管理
创建 Secret
bash
kubectl create secret generic <secret-name> --from-literal=username=admin --from-literal=password=123456查看 Secret
bash
kubectl get secrets删除 Secret
bash
kubectl delete secret <secret-name>节点管理
查看节点标签
bash
kubectl get nodes --show-labels为节点添加标签
bash
kubectl label nodes <node-name> key=value资源配额管理
查看 ResourceQuota
bash
kubectl get resourcequota创建 ResourceQuota (示例)
bash
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ResourceQuota
metadata:
name: demo-resource-quota
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
persistentvolumeclaims: "4"
services.loadbalancers: "2"
EOF查看 ResourceQuota 使用情况
bash
kubectl describe resourcequota <resourcequota-name>自动扩缩容管理
查看 HorizontalPodAutoscaler (HPA)
bash
kubectl get hpa创建 HPA (示例)
bash
kubectl autoscale deployment nginx --cpu-percent=50 --min=1 --max=10查看 HPA 详细信息
bash
kubectl describe hpa <hpa-name>删除 HPA
bash
kubectl delete hpa <hpa-name>任务管理
创建 Job (示例)
bash
cat <<EOF | kubectl apply -f -
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl:5.34.0
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
EOF查看 Job
bash
kubectl get jobs查看 Job 详细信息
bash
kubectl describe job <job-name>删除 Job
bash
kubectl delete job <job-name>创建 CronJob (示例)
bash
cat <<EOF | kubectl apply -f -
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox:1.28
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
EOF查看 CronJob
bash
kubectl get cronjobs查看 CronJob 详细信息
bash
kubectl describe cronjob <cronjob-name>删除 CronJob
bash
kubectl delete cronjob <cronjob-name>验证
通过执行上述命令,可以验证集群的基本功能是否正常运行。
故障排除
- 如果命令执行失败,请检查集群状态和权限配置
- 确保 kubectl 工具已正确配置并指向正确的集群
最佳实践
- 定期检查集群状态和资源使用情况
- 使用命名空间隔离不同的应用环境
- 合理设置资源配额和限制
