K8s入门
下面是一个简单的 Kubernetes 入门示例,我们将创建一个基本的 Web 应用程序,并使用 Kubernetes 将其部署到集群中。
下面是一个简单的 Kubernetes 入门示例,我们将创建一个基本的 Web 应用程序,并使用 Kubernetes 将其部署到集群中。
步骤 1:准备应用程序
我们创建一个简单的 Web 应用程序,使用 Flask 框架编写一个简单的 Hello World 页面。
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, Kubernetes!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
步骤 2:Dockerize 应用程序
我们将应用程序容器化,创建一个 Dockerfile。
# Dockerfile
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
步骤 3:构建 Docker 镜像
在应用程序目录中执行以下命令构建 Docker 镜像:
docker build -t my-flask-app .
步骤 4:运行 Docker 容器
在本地运行 Docker 容器并测试应用程序:
docker run -d -p 5000:5000 my-flask-app
访问 http://localhost:5000 应该能够看到 Hello World 页面。
步骤 5:安装 Kubernetes
安装并配置一个 Kubernetes 集群,可以选择使用 Minikube 在本地运行一个单节点的 Kubernetes 集群。
- 安装 Minikube:
首先,你需要安装 Minikube。你可以根据你的操作系统从 Minikube 的官方网站(https://minikube.sigs.k8s.io/docs/start/)下载并安装 Minikube。 - 安装 kubectl:
kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。你可以从 Kubernetes 的官方网站(https://kubernetes.io/docs/tasks/tools/install-kubectl/)下载并安装 kubectl。 - 启动 Minikube:
打开终端(或命令行界面),运行以下命令来启动 Minikube 集群:
minikube start
这会下载和启动一个单节点的 Kubernetes 集群,并将其运行在你的本地机器上。
4. 验证集群状态:
运行以下命令来验证 Minikube 集群的状态:
kubectl cluster-info
如果一切正常,你应该能够看到集群的信息,包括 master 节点的地址和 kube-dns 服务的地址。
5. 使用 Minikube:
你现在可以使用 Minikube 集群了。例如,你可以使用 kubectl 命令来管理 Pod、Deployment、Service 等 Kubernetes 资源对象。
6. 停止 Minikube:
当你不再需要使用 Minikube 时,可以使用以下命令停止 Minikube 集群:
minikube stop
这会停止 Minikube 集群,但保留集群的状态和配置信息。
7. 删除 Minikube:
如果你想要完全删除 Minikube,包括所有状态和配置信息,可以使用以下命令:
minikube delete
这会停止并删除 Minikube 集群,并清除所有相关的状态和配置信息。
步骤 6:创建 Kubernetes 资源
创建一个 Kubernetes 部署(Deployment)和服务(Service)来部署我们的应用程序。
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-flask-app
spec:
replicas: 2
selector:
matchLabels:
app: my-flask-app
template:
metadata:
labels:
app: my-flask-app
spec:
containers:
- name: my-flask-app
image: my-flask-app
ports:
- containerPort: 5000
---
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: my-flask-service
spec:
selector:
app: my-flask-app
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: LoadBalancer
步骤 7:部署应用程序到 Kubernetes
在 Kubernetes 集群中创建部署和服务:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
步骤 8:访问应用程序
通过 Kubernetes 集群提供的公共 IP 地址访问应用程序:
kubectl get svc
使用该 IP 地址访问应用程序,应该能够看到 Hello World 页面。
更多推荐
所有评论(0)