春林沐雨 發表於 2026-3-28 19:41:00

Kubernetes入门:从概念到实践的完整指南

<h2>前言</h2>
<p>Kubernetes(K8s)是当今最流行的容器编排平台,是DevOps工程师的必备技能。本文从概念到实践,带你快速入门K8s。</p>
<h2>一、K8s是什么?</h2>
<p>Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。</p>
<p><strong>核心功能:</strong></p>
<ul>
<li>自动装箱:根据资源需求自动调度容器</li>
<li>自我修复:失败容器自动重启</li>
<li>水平扩展:一键扩缩容</li>
<li>服务发现:内置DNS和服务发现</li>
<li>负载均衡:自动分发流量</li>
</ul>
<h2>二、核心概念</h2>
<h3>1. Pod</h3>
<p>最小部署单元,一个Pod可以包含一个或多个容器。</p>
<h3>2. Deployment</h3>
<p>管理Pod的副本数量和更新策略。</p>
<h3>3. Service</h3>
<p>定义一组Pod的访问策略,提供稳定的访问入口。</p>
<h3>4. ConfigMap &amp; Secret</h3>
<p>配置管理和敏感信息存储。</p>
<h3>5. Namespace</h3>
<p>资源隔离的逻辑分组。</p>
<h2>三、环境搭建</h2>
<pre><code># 安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

# 安装minikube(本地K8s)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

# 启动集群
minikube start</code></pre>
<h2>四、第一个应用部署</h2>
<h3>1. 创建Deployment</h3>
<pre><code># 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</code></pre>
<h3>2. 创建Service</h3>
<pre><code># service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
    app: nginx
ports:
- port: 80
    targetPort: 80
type: NodePort</code></pre>
<h3>3. 部署应用</h3>
<pre><code>kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

# 查看状态
kubectl get pods
kubectl get services
kubectl get deployments</code></pre>
<h2>五、常用命令</h2>
<pre><code># 查看资源
kubectl get pods -n default
kubectl get deployments
kubectl get services

# 查看详情
kubectl describe pod &lt;pod-name&gt;
kubectl logs &lt;pod-name&gt;

# 进入容器
kubectl exec -it &lt;pod-name&gt; -- /bin/bash

# 扩缩容
kubectl scale deployment nginx-deployment --replicas=5

# 删除资源
kubectl delete -f deployment.yaml
kubectl delete pod &lt;pod-name&gt;</code></pre>
<h2>六、配置管理</h2>
<pre><code># ConfigMap
kubectl create configmap app-config --from-literal=key1=value1

# Secret
kubectl create secret generic db-secret --from-literal=password=secret123

# 在Pod中使用
env:
- name: DB_PASSWORD
    valueFrom:
      secretKeyRef:
      name: db-secret
      key: password</code></pre>
<h2>七、常见问题</h2>
<p><strong>Q: Pod一直处于Pending状态?</strong></p>
<p>A: 检查节点资源是否足够,或是否有污点/容忍配置问题。</p>
<p><strong>Q: ImagePullBackOff?</strong></p>
<p>A: 镜像不存在或没有权限拉取,检查镜像名称和imagePullSecrets。</p>
<h2>总结</h2>
<p>K8s是容器编排的事实标准,掌握Pod、Deployment、Service等核心概念是入门第一步。建议在minikube上多练习,熟悉kubectl命令。</p>
<p><em>本文由AI辅助创作。</em></p>

</div>
<div id="MySignature" role="contentinfo">
   

---

📌 **如果觉得文章对你有帮助,欢迎点赞👍收藏⭐!**

💬 有问题或建议?欢迎在评论区留言讨论~

🔗 更多技术干货请关注作者:弥烟袅绕

📚 本文地址:https://www.cnblogs.com/czlws/p/19788447<br><br>
来源:https://www.cnblogs.com/czlws/p/19788447
頁: [1]
查看完整版本: Kubernetes入门:从概念到实践的完整指南