Kubernetes入门教程
1 什么是Kubernetes
Kubernetes(K8s)是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供容器调度、服务发现、负载均衡、存储编排等核心功能。
2 核心概念
- Pod:Kubernetes中最小可部署单元,包含一个或多个容器
- Deployment:管理Pod副本和滚动更新的控制器
- Service:为一组Pod提供统一访问入口和负载均衡
- Namespace:将集群资源划分为多个虚拟集群
- ConfigMap & Secret:存储配置和敏感数据
- 安装Minikube(本地开发环境)
3 安装环境
# 安装Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 启动Minikube集群
minikube start --driver=docker
4 部署第一个应用
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.23
ports:
- containerPort: 80
# 部署到集群
kubectl apply -f nginx-deployment.yaml
# 查看部署状态
kubectl get deployments
# 查看Pod
kubectl get pods -l app=nginx
5 暴露服务
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
kubectl apply -f nginx-service.yaml
# 获取服务URL
minikube service nginx-service --url
6 配置管理
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
data:
nginx.conf: |
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-config-deployment
spec:
replicas: 1
selector:
matchLabels:
app: nginx-config
template:
metadata:
labels:
app: nginx-config
spec:
containers:
- name: nginx
image: nginx:1.23
volumeMounts:
- name: nginx-config-volume
mountPath: /etc/nginx/conf.d/
volumes:
- name: nginx-config-volume
configMap:
name: nginx-config
7 扩缩容应用
# 扩容到5个副本
kubectl scale deployment nginx-deployment --replicas=5
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nginx-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx-deployment
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
8 滚动更新
# 更新镜像到1.24版本
kubectl set image deployment/nginx-deployment nginx=nginx:1.24
kubectl rollout status deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment
9 清理资源
# 删除部署和服务
kubectl delete deployment nginx-deployment
kubectl delete service nginx-service
minikube stop
10 总结
本教程介绍了Kubernetes的核心概念和基本操作,包括:
- 安装本地开发环境(Minikube)
- 部署和管理容器化应用
- 使用Service暴露应用
- 通过ConfigMap管理配置
- 实现应用扩缩容
- 执行滚动更新和回滚
- 清理集群资源
Kubernetes是一个功能强大的容器编排平台,掌握这些基础操作是成为K8s管理员的第一步。后续可以深入学习更高级的特性如持久化存储、网络策略、安全配置等。建议继续实践并探索Kubernetes在生产环境中的应用。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。





