Kubernetes(K8s)入门教程:从零开始掌握容器编排
目录
Kubernetes(K8s)入门教程:从零开始掌握容器编排
1. Kubernetes 简介
1.1 什么是 Kubernetes?
Kubernetes(简称 K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它由 Google 开发,并于 2014 年捐赠给 Cloud Native Computing Foundation(CNCF)。Kubernetes 的核心目标是简化容器化应用的运维复杂性,提供弹性、高可用性和可扩展性。
1.2 核心功能
- 自动化部署与回滚:支持滚动更新和版本回退。
- 弹性伸缩:根据负载动态调整 Pod 数量。
- 自我修复:自动重启失败的容器,替换异常节点。
- 服务发现与负载均衡:通过 DNS 或 IP 地址暴露服务。
- 存储管理:支持多种存储类型(本地存储、云存储等)。
2. 环境搭建与 Minikube 安装
2.1 安装 Minikube
Minikube 是一个轻量级工具,用于在本地快速启动单节点 Kubernetes 集群,适合开发和测试。
安装步骤(以 macOS 为例):
# 安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Minikube
brew install minikube
# 启动 Minikube 集群(默认使用 Docker 作为容器运行时)
minikube start
# 验证集群状态
kubectl cluster-info
安装 kubectl(Kubernetes 命令行工具)
# 下载并安装 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
3. 核心概念详解
3.1 Pod
Pod 是 Kubernetes 中最小的部署单元,包含一个或多个共享资源的容器。例如,一个 Web 应用和其日志收集器可以运行在同一个 Pod 中。
示例:创建一个 Pod
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
部署命令:
kubectl apply -f nginx-pod.yaml
kubectl get pods
3.2 Deployment
Deployment 用于管理 Pod 的副本数量和更新策略,支持滚动更新和回滚。
示例:创建一个 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deplo