Docker——使用 Kubernetes
Docker 是一种工具,旨在通过使用容器来更轻松地创建、部署和运行应用程序。 Docker 也可以执行图像文件。 Docker 允许您将应用程序与基础设施分离,以便 Docker 容器可以更快地交付项目。它利用操作系统级别的虚拟化来交付应用程序。
Docker 容器优势:
- 尺寸很小,它们非常快。
- 轻巧便携。
- 更少的 RAM 和空间。
- 进程隔离,如果一个容器受到影响,其他容器不会受到影响。
Kubernetes: Kubernetes 是一个开源系统,用于容器化应用程序的自动化、部署和扩展。它用于构建现代应用程序。您可以使用 Kubernetes 进行云部署。当与 AWS 结合使用时,您可以使用 Kubernetes 来管理托管您的容器的 Amazon Elastic Compute Cloud (EC2) 实例集群。
Kubernetes 优势:
- 可扩展性
- 灵活性
- 可移植性
Docker 中的关键术语:
- 容器:容器允许开发人员打包应用程序及其所需的所有部分,例如库、工具、代码和其他依赖项,这些依赖项用于运行服务并将其部署为单个包。它由有助于构建容器的容器引擎组成。
- Docker 引擎: Docker 引擎是一种开源容器化创新,用于构建和容器化您的应用程序。
- Docker 文件:利用 Docker 文件创建 Docker 镜像。该文件包含命令形式的数据,这反过来有助于创建 Docker 映像。
- Docker 映像: Docker 映像是一种经过仔细阅读的格式,其中包含一系列有关制作可以在 Docker 门户上运行的容器的说明。
先决条件:
- 码头工人桌面
- Kubernetes CLI
- Minikube
安装:
1.安装Docker桌面
Docker 可以通过阅读 Dockerfile 中的指南自然地制作图片。 Dockerfile 是一个书籍档案,其中包含客户可以接近订单行以收集图片的每个订单。利用 docker assemble 客户端可以制作一个机器人化制造,该制造可以执行一些订单行指南。
要为 Windows 安装 docker 桌面,您可以参考此链接。
2. 启用 Kubernetes:安装 docker 后,您必须启用 Kubernetes。点击设置,它会带你到以下地方:
3. 安装 Kubernetes CLI:为了运行 Kubernetes 集群,使用 Kubernetes 命令行界面 (CLI),kubectl。
要下载 Kubernetes CLI,请参阅此链接。
4. 安装 Minikube: Minikube 被称为“本地 Kubernetes 引擎”。 Minikube 是一种允许您在本地运行 Kubernetes 的设备。 Minikube 在您的 PC 上运行一个单独的集线器 Kubernetes 束。要安装,请参阅此链接。
5. 完成所有安装过程后,我们现在将在任何编辑器上制作一个简单的应用程序。
- 在桌面上创建一个文件夹(这里是 hello-minikube)。
- 在您的 Visual Studio Code 中打开该文件夹(您可以使用您选择的编辑器)。项目结构如下所示:
- 在app.py 中添加以下Python代码:
Python3
from flask import flask, jsonify
import time
app = flask(_name_)
app.router("/")
def hello_minikubegfg():
return jsonify({"Time to Call":time.time()})
if _name_ == "_main_":
app.run(host='0.0.0.0',debug=True)
- 在requirement.txt 文件中-> 只需添加所需的依赖项(这里我添加了flask)
- 在 Docker 文件 -> 从 docker hub 拉取 docker 映像,并复制目录中的所有文件,如下所述:
FROM python:3.7
RUN mkdir /app
WORKDIR /app/
ADD . /app/
RUN pip install -r requirements.txt
CMD ["python", "/app/app.py"]
- 在终端中添加以下命令:
docker build -t hello-minikube . (Press Enter)
docker images (Press Enter)
执行上述命令后,您将能够看到 Image id 如下:
- 现在添加一个新文件名为“ deployment.yaml ”并添加以下代码:
apiVersion: v1
kind: Service
metadata:
name: test-service
spec:
selector:
app: test-app
ports:
- protocol: "TCP"
port: 6000
targetPort: 5000
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-minikube-test-app
spec:
selector:
matchLabels:
app: hello-minikube-test-app
replicas: 5
template:
metadata:
labels:
app: hello-minikube-test-app
spec:
containers:
- name: hello-minikube-test-app
image: hello-minikube
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5000
H。在终端中添加如下命令用于部署目的:
kubectl apply -f deployment.yaml (Press Enter)
minikube start (Press Enter)
minikube dashboard (Press Enter)
一世。执行上述命令后,您将看到您的 docker 应用程序已部署到 Kubernetes,并且 minikube 仪表板将在浏览器上打开。
输出:因此 docker 应用程序已成功部署到 Kubernetes。