从私有仓库下载镜像
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和PersistentVolumesMySQL和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.yamlsecret是一个对象,其存储了一块如密码或密钥的敏感数据。从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数据库密码。