引言

Kubernetes(简称K8s)作为当今最流行的容器编排平台,已经成为现代云原生应用部署和管理的事实标准。它能够自动化容器化应用程序的部署、扩展和管理,极大地简化了复杂应用的运维工作。本文将为您揭示K8s的实用攻略,帮助您轻松掌握这一强大的容器编排界面。

K8s基础概念

1. 集群(Cluster)

集群是K8s的基本工作单元,由多个节点(Node)组成。每个节点上运行着K8s的组件,如kubelet、kube-proxy等,负责运行Pod。

2. 节点(Node)

节点是集群中的计算单元,可以是物理机或虚拟机。节点上运行着K8s的组件,负责管理Pod的生命周期。

3. Pod

Pod是K8s中的最小部署单元,通常包含一个或多个容器。Pod在同一个节点上运行,共享网络和存储资源。

4. Service

Service用于将请求路由到Pod,提供负载均衡和名称解析功能。

5. Deployment

Deployment用于声明和管理应用的部署方式,支持滚动更新、回滚等操作。

K8s常用操作

1. 查看节点信息

使用以下命令查看K8s集群中所有节点的信息:

kubectl get nodes

2. 管理节点

    添加节点:使用kubeadm工具添加节点到集群。

    删除节点:使用kubeadm工具删除节点。

3. Pod的基本操作

  • 创建Pod
kubectl create -f pod.yaml
  • 查看Pod
kubectl get pods
  • 删除Pod
kubectl delete pod pod-name

4. Service操作

  • 创建Service
kubectl create -f service.yaml
  • 查看Service
kubectl get svc

5. Deployment操作

  • 创建Deployment
kubectl create -f deployment.yaml
  • 更新和回滚Deployment
kubectl set image deployment/deployment-name image-name=image-revision
kubectl rollout undo deployment/deployment-name
  • 缩容和扩容Deployment
kubectl scale deployment/deployment-name --replicas=3

6. 使用ConfigMap和Secret

  • 创建ConfigMap
kubectl create configmap cm-name --from-literal=key=value
  • 创建Secret
kubectl create secret generic secret-name --from-literal=key=value

7. 管理Namespaces

  • 创建Namespace
kubectl create namespace ns-name
  • 查看Namespace
kubectl get ns

Helm入门

Helm是K8s的包管理工具,可以帮助您更轻松地部署和管理应用程序。

1. 安装Helm

# 安装Helm v3
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

2. 初始化Helm

helm init

3. 安装应用程序

helm install my-app stable/redis

K8s日常排错与调试

  • 查看Pod事件
kubectl describe pod pod-name
  • 查看日志
kubectl logs pod-name

小结

通过本文的介绍,相信您已经对K8s有了一定的了解。在实际应用中,K8s的部署和管理可能更加复杂,但只要掌握了本文中的实用攻略,您就能轻松应对各种场景。祝您在K8s的世界中游刃有余!