k8s简单介绍
·
什么是Kubernetes(K8s)?
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。它由Google开发并捐赠给云原生计算基金会(CNCF)。K8s的核心功能包括负载均衡、服务发现、自动扩缩容、滚动更新和故障恢复等。
核心概念
Pod
Pod是K8s的最小调度单元,包含一个或多个容器(通常为1个)。Pod内的容器共享网络和存储资源。
Deployment
Deployment用于定义Pod的部署方式,支持声明式更新(如版本回滚)和副本管理。
Service
Service为Pod提供稳定的网络访问入口,支持负载均衡和服务发现。
Namespace
Namespace用于逻辑隔离资源(如开发、测试、生产环境),默认为default。
安装与配置
Minikube(本地开发)
Minikube是单节点K8s集群工具,适合本地学习和测试:
# 安装Minikube(需提前安装Docker或Hypervisor)
minikube start --driver=docker
minikube status
kubectl(命令行工具)
kubectl是操作K8s集群的核心工具:
# 查看集群节点
kubectl get nodes
# 查看Pod
kubectl get pods -A
部署第一个应用
-
创建Deployment
通过YAML文件定义Nginx的Deployment:apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80执行命令:
kubectl apply -f nginx-deployment.yaml -
暴露Service
将Deployment暴露为Service(NodePort类型):kubectl expose deployment nginx-deployment --type=NodePort --port=80 kubectl get svc -
访问应用
使用Minikube获取访问URL:minikube service nginx-deployment --url
常用命令速查
- 查看资源状态
kubectl get pods,svc,deploy - 查看Pod日志
kubectl logs <pod-name> - 进入Pod终端
kubectl exec -it <pod-name> -- /bin/bash - 删除资源
kubectl delete -f nginx-deployment.yaml
学习资源推荐
- 官方文档:
kubernetes.io/docs - 互动教程:
Katacoda Kubernetes课程 - 书籍:
《Kubernetes权威指南》
通过实践和阅读文档逐步掌握核心功能,如Ingress、ConfigMap、StatefulSet等高级特性。
更多推荐


所有评论(0)