Kubernetes 常用操作大全:全面掌握 K8s 基础与进阶命令
Kubernetes(简称 K8s)作为一种开源的容器编排工具,已经成为现代分布式系统中的标准。它的强大之处在于能够自动化应用程序的部署、扩展和管理。在使用 Kubernetes 的过程中,熟悉常用操作对于高效地管理集群资源至关重要。本文将详细介绍 Kubernetes 的各种常用操作,帮助你在管理集群时应对各种场景。
目录
- Kubernetes 基本概念
- 集群操作
- 查看节点信息
- 管理节点
- Pod 的基本操作
- 创建 Pod
- 查看 Pod
- 删除 Pod
- Service 操作
- 创建 Service
- 查看 Service
- Deployment 的操作
- 创建 Deployment
- 更新和回滚 Deployment
- 缩容和扩容 Deployment
- 使用 ConfigMap 和 Secret
- 管理 Namespaces
- Helm 基本操作
- Kubernetes 日常排错与调试
- 小结
1. Kubernetes 基本概念
Kubernetes 是用于自动部署、扩展和管理容器化应用程序的平台。它包括以下核心概念:
- Node:Kubernetes 集群中的一个节点(物理或虚拟机)。
- Pod:Kubernetes 中最小的部署单元,一个 Pod 通常包含一个或多个容器。
- Service:用于将请求路由到 Pod 的负载均衡器。
- Deployment:用于声明和管理应用的部署方式。
2. 集群操作
2.1 查看节点信息
要查看 Kubernetes 集群中所有节点的信息,可以使用以下命令:
kubectl get nodes
- 显示集群中所有节点的状态和相关信息。
2.2 管理节点
-
标记节点:可以为节点添加标记,以便调度器做出调度决策。例如:
kubectl label nodes <node-name> disktype=ssd
-
污点节点:标记节点为不可调度,防止新的 Pod 被调度到该节点上:
kubectl taint nodes <node-name> key=value:NoSchedule
3. Pod 的基本操作
3.1 创建 Pod
可以通过编写 YAML 文件或直接使用命令创建 Pod。以下是通过 YAML 创建 Pod 的示例文件 pod.yaml
:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
使用以下命令应用 YAML 文件:
kubectl apply -f pod.yaml
3.2 查看 Pod
-
列出所有 Pod:
kubectl get pods
-
获取 Pod 的详细信息:
kubectl describe pod <pod-name>
3.3 删除 Pod
要删除一个 Pod,可以使用 delete
命令:
kubectl delete pod <pod-name>
4. Service 操作
4.1 创建 Service
Service 允许不同 Pod 之间相互通信,或暴露应用程序以供外部访问。以下是创建一个 ClusterIP 类型 Service 的 YAML 文件 service.yaml
:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
使用以下命令应用 YAML 文件:
kubectl apply -f service.yaml
4.2 查看 Service
-
列出所有 Service:
kubectl get services
-
查看特定 Service 的详细信息:
kubectl describe service <service-name>
5. Deployment 的操作
5.1 创建 Deployment
Deployment 是用于管理应用程序的声明式更新。以下是创建一个 Nginx Deployment 的 YAML 文件 deployment.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
使用以下命令创建 Deployment:
kubectl apply -f deployment.yaml
5.2 更新和回滚 Deployment
-
滚动更新:
kubectl set image deployment/nginx-deployment nginx=nginx:1.22
-
回滚 Deployment:
kubectl rollout undo deployment/nginx-deployment
5.3 缩容和扩容 Deployment
-
扩容至 5 个副本:
kubectl scale deployment/nginx-deployment --replicas=5
6. 使用 ConfigMap 和 Secret
ConfigMap 和 Secret 用于管理配置数据和敏感信息。
-
创建 ConfigMap:
kubectl create configmap my-config --from-literal=key1=value1
-
创建 Secret:
kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=secret
7. 管理 Namespaces
Namespaces 用于将集群中的资源分隔开,以便更好地管理和隔离。
-
查看所有 Namespaces:
kubectl get namespaces
-
创建 Namespace:
kubectl create namespace mynamespace
-
删除 Namespace:
kubectl delete namespace mynamespace
8. Helm 基本操作
Helm 是 Kubernetes 的包管理工具,用于简化应用的部署。
-
安装 Chart:
helm install my-release stable/nginx
-
列出所有 Release:
helm list
-
卸载 Release:
helm uninstall my-release
9. Kubernetes 日常排错与调试
-
查看 Pod 日志:
kubectl logs <pod-name>
-
进入 Pod 进行调试:
kubectl exec -it <pod-name> -- /bin/bash
-
查看事件:查看集群中的所有事件,以排查可能的问题。
kubectl get events
10. 小结
本文详细介绍了 Kubernetes 的各种常用操作,从基础的 节点管理 和 Pod 操作,到进阶的 Deployment 管理、Service 配置、ConfigMap 和 Secret 使用,以及 Helm 的基本用法。掌握这些操作,能够帮助开发者和运维人员在日常工作中更加高效地管理 K8s 集群。
Kubernetes 的丰富功能使得容器编排变得高效而灵活,但也对用户提出了更高的要求。熟练使用这些操作命令,可以让你在日常维护和调试 Kubernetes 集群时更加得心应手,为企业提供稳定和高效的容器管理服务。
原文地址:https://blog.csdn.net/lssffy/article/details/144084200
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!