傻大方


首页 > 潮·科技 > >

Docker|揭开 Kubernetes 的神秘面纱( 二 )



按关键词阅读: Docker Kubernetes 容器 Pod Google


Kubernetes 为用户提供了:

  1. 服务发现和负载平衡
  2. 存储编排
  3. 自动退出和回退
  4. 自动打包
  5. 自我修复
  6. 秘密配置管理
Kubernetes 可以做什么?在本文中 , 我们将会看到一些从头构建 Web 应用程序时如何使用 Kubernetes 的代码示例 。 我们将在 Python 中使用 Flask 创建一个简单的后端服务器 。
对于那些想从头开始构建 Web 应用程序的人 , 有一些前提条件 , 即:
  1. 对 Docker、Docker 容器和 Docker 镜像的基本了解 。 可以访问 这里 快速了解 。
  2. 系统中应该安装 Docker 。
  3. 系统中应该安装 Kubernetes , 有关如何在本地计算机上安装的说明 , 请访问 这里。
现在 , 创建一个目录 , 如下代码片段所示:
mkdir flask-kubernetes/app && cd flask-kubernetes/app接下来 , 在 flask-kubernetes/app 目录中 , 创建一个名为 main.py 的文件 , 如下面的代码片段所示:
touch main.py在新创建的 main.py 文件中 , 粘贴下面代码:
from flask import Flaskapp = Flask(__name__) @app.route("/")def hello(): return "Hello from Kubernetes!" if __name__ == "__main__": app.run(host='0.0.0.0')使用下面命令在本地安装 Flask:
pip install Flask==0.10.1Flask 安装后 , 执行下面的命令:
python app.py应该在本地 5000 端口运行 Flask 服务器 , 这是 Flask 应用程序的默认端口 , 并且你可以在 http://localhost:5000 上看到输出 “Hello from Kubernetes!” 。 服务器在本地运行之后 , 我们创建一个供 Kubernetes 使用的 Docker 镜像 。 创建一个名为 Dockerfile 的文件 , 并将以下代码片段粘贴到其中:
FROM python:3.7 RUN mkdir /appWORKDIR /appADD . /app/RUN pip install -r requirements.txt EXPOSE 5000CMD ["python", "/app/main.py"]Dockerfile 文件的说明如下:
  1. Docker 将从 DockerHub 获取 Python 3.7 镜像 。
  2. 将在镜像中创建一个应用程序目录 。
  3. 它将一个 /app 目录设置为工作目录 。
  4. 将内容从主机中的应用程序目录复制到镜像应用程序目录 。
  5. 发布端口 5000 。
  6. 最后 , 它运行命令 , 启动 Flask 服务器 。
接下来 , 我们将使用以下命令创建 Docker 镜像:
docker build -f Dockerfile -t flask-kubernetes:latest .创建 Docker 镜像后 , 我们可以使用以下命令在本地运行该镜像进行测试:
docker run -p 5001:5000 flask-kubernetes通过运行容器在本地完成测试之后 , 我们需要在 Kubernetes 中部署它 。 我们将首先使用 kubectl 命令验证 Kubernetes 是否正在运行 。 如果没有报错 , 则说明它正在工作 。 如果有报错 , 请参考 该信息。
接下来 , 我们创建一个部署文件 。 这是一个 Yaml 文件 , 其中包含有关 Kubernetes 的说明 , 该说明涉及如何以声明性的方式创建 Pod 和服务 。 因为我们有 Flask Web 应用程序 , 我们将创建一个 deployment.yaml 文件 , 并在其中包含 Pod 和服务声明 。
创建一个名为 deployment.yaml 的文件并向其中添加以下内容 , 然后保存:
apiVersion: v1kind: Servicemetadata: name: flask-kubernetes -servicespec: selector: app: flask-kubernetes ports: - protocol: "TCP" port: 6000 targetPort: 5000 type: LoadBalancer---apiVersion: apps/v1kind: Deploymentmetadata: name: flask-kubernetesspec: replicas: 4 template: metadata: labels: app: flask-kubernetes spec: containers: - name: flask-kubernetes image: flask-kubernetes:latest imagePullPolicy: Never ports: - containerPort: 5000使用以下命令将 yaml 文件发送到 Kubernetes:
kubectl apply -f deployment.yaml如果执行以下命令 , 你会看到 Pod 正在运行:
kubectl get pods现在 , 导航至 http://localhost:6000 , 你应该会看到 “Hello from Kubernetes!”消息 。 成功了! 该应用程序现在正在 Kubernetes 中运行!
Kubernetes 做不了什么?Kubernetes 不是一个传统的 , 包罗万象的 PaaS(平台即服务)系统 。由于 Kubernetes 运行在容器级别而非硬件级别 , 因此它提供了 PaaS 产品共有的一些普遍适用功能 , 如部署、扩展、负载平衡、日志记录和监控 。 Kubernetes 为开发人员平台提供了构建块 , 但在重要的地方保留了用户的选择和灵活性 。
  • Kubernetes 不限制所支持的应用程序的类型 。 如果应用程序可以在容器中运行 , 那么它应该可以在 Kubernetes 上更好地运行 。
  • 它不部署和构建源代码 。
  • 它不决定日志记录、监视或警报解决方案 。
  • 它不提供或不要求配置语言/系统 。 它提供了一个声明式的 API 供所有人使用 。
  • 它不提供或不采用任何全面的机器配置、维护、管理或自我修复系统 。


    稿源:(未知)

    【傻大方】网址:http://www.shadafang.com/c/111J2G012020.html

    标题:Docker|揭开 Kubernetes 的神秘面纱( 二 )


上一篇:1399元配了一台32万跑分电脑,显卡还是RX580

下一篇:Go:数据库连接池