Kubernetes容器化工具Kind实践部署Kubernetes v1.18.x 版本, 发布WordPress和MySQL (3)

从私有仓库下载镜像

docker exec test-drone-control-plane bash -c "sed -i '56a\ [plugins.cri.registry.mirrors.\"192.168.77.134:5000\"]' /etc/containerd/config.toml" docker exec test-drone-control-plane bash -c "sed -i '57a\ endpoint = [\"http://192.168.77.134:5000\"]' /etc/containerd/config.toml" docker exec test-drone-control-plane bash -c "cat /etc/containerd/config.toml" docker exec test-drone-control-plane bash -c 'kill -s SIGHUP $(pgrep containerd)' COPY

还可以通过挂载文件的方式,挂载containerd的配置文件

重启集群

docker stop test-drone-control-plane docker start test-drone-control-plane COPY

总之,kind可以很方便的在docker环境下创建测试集群,而不污染我们的宿主机,给我们测试提供了很大的便利。

示例:使用持久卷部署WordPress和MySQL

本教程向您展示如何使用Kind部署WordPress网站和MySQL数据库。这两个应用程序都使用PersistentVolumes和PersistentVolumeClaims来存储数据。

PersistentVolume(PV)是已经由管理员手动供应,或动态地使用由Kubernetes置备集群中的一块存储的StorageClass。(PVC)是由能够由PV满足用户对于存储的请求。PersistentVolumes和PersistentVolumeClaims与Pod生命周期无关,并通过重新启动,重新计划甚至删除Pod来保留数据。

警告:此部署不适合生产用例,因为它使用单实例WordPress和MySQL Pods。考虑使用WordPress Helm Chart在生产中部署WordPress。

注意:本教程中提供的文件使用的是GA Deployment API,并且特定于kubernetes 1.9和更高版本。如果您希望将本教程与Kubernetes的早期版本一起使用,请相应地更新API版本,或参考本教程的早期版本。

目标

创建PersistentVolumeClaims和PersistentVolumes

创建一个kustomization.yaml与

Secret密码配置

MySQL资源配置

WordPress资源配置

通过以下方式应用Kustomization目录 kubectl apply -k ./

清理

在你开始之前

您需要具有Kubernetes集群,并且必须将kubectl命令行工具配置为与集群通信。如果还没有集群,则可以使用Minikube或者是Kind创建一个集群,也 可以使用以下Kubernetes游乐场之一:

katacoda

play-Kubernetes

要检查版本,请输入kubectl version。此页面上显示的示例适用于kubectl1.14及更高版本,上面我们已经创建了kind-ha集群,直接执行后面的步骤既可。

kubectl version Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", BuildDate:"2020-06-26T03:47:41Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:48:36Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

下载以下配置文件:

mysql-deployment.yaml

wordpress-deployment.yaml

创建PersistentVolumeClaims和PersistentVolumes

MySQL和Wordpress都需要一个PersistentVolume来存储数据。他们的PersistentVolumeClaims将在部署步骤中创建。

许多集群环境都安装了默认的StorageClass。如果在PersistentVolumeClaim中未指定StorageClass,则使用群集的默认StorageClass。

创建PersistentVolumeClaim后,将根据StorageClass配置动态设置PersistentVolume。

# 查看StorageClass kubectl get sc kubectl describe sc $(kubectl get sc |grep default|awk 'NR==2{print $1}')

警告:在本地集群中,默认的StorageClass使用hostPath配置程序。hostPath该卷仅适用于开发和测试。有了hostPath卷,您的数据/tmp将驻留在Pod调度到的节点上,并且不会在节点之间移动。如果Pod死亡并被调度到群集中的另一个节点,或者该节点被重新引导,则数据将丢失。

注意:如果要启动需要使用hostPath配置程序的群集,则--enable-hostpath-provisioner必须在controller-manager组件中设置该标志。

注意:如果您有一个在Kubernetes Engine上运行的Kubernetes集群,请遵循本指南。

创建一个Secret密码文件kustomization.yaml

secret是一个对象,其存储了一块如密码或密钥的敏感数据。从1.14开始,kubectl支持使用kustomization文件管理Kubernetes对象。您可以通过中的生成器创建Secret kustomization.yaml。

kustomization.yaml从以下命令中添加一个Secret生成器。您将需要替换YOUR_PASSWORD为您要使用的密码。

cat <<EOF >./kustomization.yaml secretGenerator: - name: mysql-pass literals: - password=YOUR_PASSWORD EOF 为MySQL和WordPress添加资源配置

以下清单描述了单实例MySQL部署。MySQL容器将PersistentVolume挂载在/ var / lib / mysql。在MYSQL_ROOT_PASSWORD环境变量设置从secret数据库密码。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxxjx.html