Kubernetes 常被简写为 K8s,是谷歌基于 Borg 推出的开源容器编排管理系统。K8s 经常用于管理面向用户型应用,具有很高的灵活性、可扩展性和容灾性。在本贴中,我们要在华为云 ECS 上搭建一个简单的单节点 Kubernetes集群,并在这个集群上运行一个简单的 wordpress 博客系统,并在搭建的过程中学习K8s的相关概念,了解云原生时代的应用组织方式。
Minikube 是 Kubernetes 的单节点版,用于学习和本地开发。使用 minikube 搭配 docker,我们可以在一台服务器上搭建一个由多个本地容器组成的微型 Kubernetes 集群。
Wordpress 是一个用 PHP 语言开发的博客平台。使用 wordpress 搭配 mysql 数据库,我们可以搭建起一个简易的博客网站。
通过本实验,我们可以了解到 Kubernetes 的基本组件和基本概念,并动手实操,部署一个典型的面向用户型服务应用。
安装与准备
购买华为云 ECS,安装 minikube、docker、kubectl,准备镜像地址,预下载 coredns 镜像。
认识 Kubernetes 集群
一个 kubernetes 集群的基本结构包括一个 control plane 和若干 node。每个 node 都是一个独立的服务器,上面运行 kubelet 和 k-proxy 两个管理组件。其大致结构如下:
启动 minikube 集群,执行如下两个命令,执行结果如下图所示,此时我们已经拥有了一个正常工作的 minikube 集群,并且看到了 kube-system namespace 下的 pod 以及他们的运行状态。
- 执行minikube start –image-mirror-country=’cn’ –registry-mirror=”加速器地址” –force
- 执行kubectl get pod –all-namespaces


在 Kubernetes 上搭建博客系统
在此部分中,我们在 minikube 上搭建一个由 wordpress 和 mysql 两个组件组成的博客系统,并远程访问博客网站,创建一篇博客。
在 K8s 中,我们通过提供 yaml 格式配置文件的方式部署应用。K8s 会按照配置文件的内容拉取镜像,构建应用。我们准备并使用了 wordpress 和 mysql 对应的两个 yaml 文件。然后把 kustomization.yaml 提供给 minikube,就可以将博客系统自动部署。我们还需要进行一些网络配置,才能从远程访问它。我们使用 kubectl 这一工具设置端口代理,把运行 wordpress 容器的 80 端口开放给 ECS 的 8080 端口,即可远程访问。
部署博客系统后,集群中运行的所有 service、deployment 和 pod 的状态如下图所示。 
我所创建的第一个博客下图所示。 
感想与体会
通过完成本次实验,我可以了解到 Kubernetes 的基本组件和基本概念,并完成了一个典型的面向用户型服务应用的部署,让我们对云计算场景下虚拟化与容器的应用有了更深入的理解。
Kubernetes 常被简写为 K8s,是谷歌基于 Borg 推出的开源容器编排管理系统。K8s 经常用于管理面向用户型应用,具有很高的灵活性、可扩展性和容灾性。在本贴中,我们要在华为云 ECS 上搭建一个简单的单节点 Kubernetes集群,并在这个集群上运行一个简单的 wordpress 博客系统,并在搭建的过程中学习K8s的相关概念,了解云原生时代的应用组织方式。
Minikube 是 Kubernetes 的单节点版,用于学习和本地开发。使用 minikube 搭配 docker,我们可以在一台服务器上搭建一个由多个本地容器组成的微型 Kubernetes 集群。
Wordpress 是一个用 PHP 语言开发的博客平台。使用 wordpress 搭配 mysql 数据库,我们可以搭建起一个简易的博客网站。
通过本实验,我们可以了解到 Kubernetes 的基本组件和基本概念,并动手实操,部署一个典型的面向用户型服务应用。
安装与准备
购买华为云 ECS,安装 minikube、docker、kubectl,准备镜像地址,预下载 coredns 镜像。
认识 Kubernetes 集群
一个 kubernetes 集群的基本结构包括一个 control plane 和若干 node。每个 node 都是一个独立的服务器,上面运行 kubelet 和 k-proxy 两个管理组件。其大致结构如下:
启动 minikube 集群,执行如下两个命令,执行结果如下图所示,此时我们已经拥有了一个正常工作的 minikube 集群,并且看到了 kube-system namespace 下的 pod 以及他们的运行状态。
在 Kubernetes 上搭建博客系统
在此部分中,我们在 minikube 上搭建一个由 wordpress 和 mysql 两个组件组成的博客系统,并远程访问博客网站,创建一篇博客。
在 K8s 中,我们通过提供 yaml 格式配置文件的方式部署应用。K8s 会按照配置文件的内容拉取镜像,构建应用。我们准备并使用了 wordpress 和 mysql 对应的两个 yaml 文件。然后把 kustomization.yaml 提供给 minikube,就可以将博客系统自动部署。我们还需要进行一些网络配置,才能从远程访问它。我们使用 kubectl 这一工具设置端口代理,把运行 wordpress 容器的 80 端口开放给 ECS 的 8080 端口,即可远程访问。
部署博客系统后,集群中运行的所有 service、deployment 和 pod 的状态如下图所示。
我所创建的第一个博客下图所示。
感想与体会
通过完成本次实验,我可以了解到 Kubernetes 的基本组件和基本概念,并完成了一个典型的面向用户型服务应用的部署,让我们对云计算场景下虚拟化与容器的应用有了更深入的理解。