Introducción a Kubernetes Lite 2. Minikube && Pod

Crear y ejecutar imágenes de contenedores

Ejecute el siguiente comando en la consola:

docker run busybox echo ”Hello world”
复制代码

producción:imagen.png

La razón detrás de esto:imagen.png

Ejecute una aplicación simple de Node.js

Cree dos archivos, app.js y Dockerfile

aplicación.js

const http = require('http');
const os = require('os');

console.log("Kubia server starting...");

var handler = function(request, response) {
  console.log("Received request from " + request.connection.remoteAddress);
  response.writeHead(200);
  response.end("You've hit " + os.hostname() + "\n");
};

var www = http.createServer(handler);
www.listen(8080);
复制代码

Aquí se inicia un servidor HTTP en el puerto 8080. El servidor responde a cada solicitud con un código de estado 200 OKy texto.You've hit <hostname>

Dockerfile

FROM node:7 # from定义了基础镜像
ADD app.js /app.js #把app.js文件添加到镜像根目录
ENTRYPOINT ["node", "app.js"] #运行的命令
复制代码

Cree la imagen del contenedor y ejecute

docker build -t kubia .
复制代码

imagen.pngEl proceso de compilación no lo lleva a cabo el cliente de Docker, sino que carga todo el directorio de archivos en el demonio de Docker y se lleva a cabo allí. Si usa Docker en un sistema operativo que no es Linux, el cliente se ejecuta en su sistema operativo anfitrión, pero el demonio se ejecuta dentro de una máquina virtual.

Sugerencia: no incluya ningún archivo innecesario en el directorio de compilación, ya que esto ralentizará la compilación, especialmente si el demonio Docker se está ejecutando en una máquina remota.

Al construir una imagen, cada instrucción individual en el Dockerfile crea una nueva capa, cada una de las cuales puede ser reutilizada por una imagen diferente:imagen.png

Use el comando: docker imagelista de imágenes almacenadas localmente, verá la información de la imagen recién creada

Los siguientes comandos se pueden utilizar para ejecutar la imagen:

docker run --name kubia-container -p 8080:8080 -d kubia
复制代码
Pedido ilustrar
--nombre nombre del contenedor en ejecución
--D proceso de fondo
-pags Puerto de contenedor de mapeo de puerto nativo

Ahora intente acceder a su aplicación a través de http://localhost:8080

curl localhost:8080
复制代码

Configurar Minikube para ejecutar un clúster de Kubernetes de un solo nodo

Usar Minikube es la forma más fácil y rápida de ejecutar un clúster de Kubernetes. Minikube es una herramienta para construir clústeres de un solo nodo, útil tanto para probar Kubernetes como para desarrollar aplicaciones localmente.

Instalar en pc

Puede consultar la documentación oficial para instalar en su propia plataforma

puesta en marcha

minikube start
复制代码

这里很多人在启动的时候可能会遇到安装各种组件失败的情况,建议你可以使用如下命令进行

minikuebe start --memory=5700 --cpus=4 --registry-mirror=https://qe1j0wqo.mirror.aliyuncs.com --kubernetes-version=v1.19.0
复制代码

指定代理和kubernets版本,后续重启也是用此命令启动即可。

imagen.png

查看集群信息:

kubectl cluster-info
复制代码

imagen.png

可以运行 minikube ssh登录到 Minikube VM 并从内部探索它

在Kubernetes上运行第一个应用

部署 Node.js 应用

kubectl run kubia --image=luksa/kubia --port=8080
复制代码

可以使用命令kubectl get po 或者 minikuebe dashboard 查看已经运行 pod。 imagen.png

介绍 Pod

它使用多个共存容器的理念。这组容器就叫作 pod。一个 pod 是一组紧密相关的容器,它们总是一起运行在同一个工作节点上,以及同一个 Linux 命名空间中。每个 pod 就像一个独立的逻辑机器,拥有自己的 IP、主机名、进程等,运行 一个独立的应用程序。

容器、 pod及物理工作节点之间的关系:

imagen.png

在 Kubernetes 中运行 luksa/kubia 容器镜像: imagen.png

访问Web应用

创建一个服务应用,作为访问 kubia 的网络连接入口:

kubectl expose po kubia --type=LoadBalancer --name kubia-http
复制代码

但是 Minikube 不支持 LoadBalancer 类型的服务,因此服务不会有外部IP,所以无法直接访问应用。但是可以通过外部端口访问服务,在控制台执行以下命令:

minikube service kubia-http
复制代码

imagen.png 此时会打开浏览器并访问 http://127.0.0.1:61478 获取响应内容

pod 的存在是短暂的,一个 pod 可能会在任何时候消失,或许因为它所在节点发生故障, 或许因为有人删除了 pod, 或者因为 pod 被从一个健康的节点剔除了。 当其中任何一种情况发生时,新的pod与替换它的pod具有不同的IP地址。这就是需要服务的地方。解决不断变化的 pod IP 地址的问题,以及在一个固定的 IP和端口 上对外暴露多个 pod。

Supongo que te gusta

Origin juejin.im/post/7079644476746137631
Recomendado
Clasificación