Kubernetes入门:从概念到实践的完备指南
媒介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: 802. 创建Service
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
type: NodePort3. 摆设应用
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辅助创作。
免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.
页:
[1]