前言
Kubernetes(K8s)是当今最流行的容器编排平台,是DevOps工程师的必备技能。本文从概念到实践,带你快速入门K8s。
一、K8s是什么?
Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。
核心功能:
- 自动装箱:根据资源需求自动调度容器
- 自我修复:失败容器自动重启
- 水平扩展:一键扩缩容
- 服务发现:内置DNS和服务发现
- 负载均衡:自动分发流量
二、核心概念
1. Pod
最小部署单元,一个Pod可以包含一个或多个容器。
2. Deployment
管理Pod的副本数量和更新策略。
3. Service
定义一组Pod的访问策略,提供稳定的访问入口。
4. ConfigMap & Secret
配置管理和敏感信息存储。
5. Namespace
资源隔离的逻辑分组。
三、环境搭建
# 安装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
四、第一个应用部署
1. 创建Deployment
# 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
2. 创建Service
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
type: NodePort
3. 部署应用
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
# 查看状态
kubectl get pods
kubectl get services
kubectl get deployments
五、常用命令
# 查看资源
kubectl get pods -n default
kubectl get deployments
kubectl get services
# 查看详情
kubectl describe pod <pod-name>
kubectl logs <pod-name>
# 进入容器
kubectl exec -it <pod-name> -- /bin/bash
# 扩缩容
kubectl scale deployment nginx-deployment --replicas=5
# 删除资源
kubectl delete -f deployment.yaml
kubectl delete pod <pod-name>
六、配置管理
# 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
七、常见问题
Q: Pod一直处于Pending状态?
A: 检查节点资源是否足够,或是否有污点/容忍配置问题。
Q: ImagePullBackOff?
A: 镜像不存在或没有权限拉取,检查镜像名称和imagePullSecrets。
总结
K8s是容器编排的事实标准,掌握Pod、Deployment、Service等核心概念是入门第一步。建议在minikube上多练习,熟悉kubectl命令。
本文由AI辅助创作。
---
📌 **如果觉得文章对你有帮助,欢迎点赞👍收藏⭐!**
💬 有问题或建议?欢迎在评论区留言讨论~
🔗 更多技术干货请关注作者:弥烟袅绕
📚 本文地址:https://www.cnblogs.com/czlws/p/19788447
来源:https://www.cnblogs.com/czlws/p/19788447 |