Kailang Blog

Kubernetes 管理 Docker 容器2020-12-18Θ

k8s minikube 图片来源于Install Kubernetes: The Ultimate Guide

Kubernetes 简介#

Kubernetes 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

Minikube 简介#

Minikube 可以实现一种轻量级的 Kubernetes 集群,通过在本地计算机上创建虚拟机并部署只包含单个节点的简单集群

MacOS 系统安装依赖#

安装依赖#

  • ~/.kube/config 文件中查看所有可用的环境

启动#

Minikube Dashboard#

k8s dashboard

Docker Desktop Dashboard(MasOC)#

minikube start 回启动一个 Docker 容器:

docket desktop dashboad minikube

打包 Nodejs 应用镜像#

创建 Nodejs 应用程序#

创建 hello-node 文件夹,添加以下文件以及代码:

server.js

Dockerfile

打包#

生成镜像如下:

创建 Deployment#

Kubernetes Pod 是一个或多个容器组合在一起得共享资源,Kubernetes Deployment 是检查 Pod的健康状况。

查看群集 events#

查看 kubectl 配置#

创建 Service#

默认情况,Pod 只能通过 Kubernetes 群集内部 IP 访问。要使 hello-node 容器从 Kubernetes 虚拟网络外部访问,须要使用 Kubernetes Service 暴露 Pod。

使用 kubectl expose 命令将 Pod 暴露到外部环境:

浏览器访问 Service#

可以通过minikube Service 命令访问。

会即刻打开浏览器,显示 “Hello World” 消息。

更新 Nodejs 应用镜像和服务#

修改 Nodejs 程序并出新镜像:

Deployment更新镜像#

更新服务#

清理#

  • 清理集群中的资源

  • 服务停用

遇到问题处理#

  1. kubectl get nodes 报错 The connection to the server 127.0.0.1:55000 was refused - did you specify the right host or port?

    解决方法:

参考#