作者 的 mysql.yaml 我这里 没有办法 跑 ,user-db post-db 等 pod 起不来
kubectl describe pod user-db-6b8765cdd5-qzzqh 查看 event
Warning FailedScheduling 110s default-scheduler 0/1 nodes are available: 1 persistentvolumeclaim "user-db" not found.
Warning FailedScheduling 30s (x3 over 109s) default-scheduler 0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims.
安装 k8s
我本来的系统是 archlinux ,但是 手动装 k8s 装不上…… 后来看到 一个脚本
https://github.com/lework/kainstall 这个 支持 centos ubuntu 和 debian 安装 ,我就 在 本机装了 个 virtualbox ,下载了 debian 的 vdi 虚拟机 文件 装好了 debian 的虚拟机
然后按照 文档说的 下载 好 离线包 和 sh 开始安装
装完后 没有 error 都是info 就是 k8s 安装成功了 看下 node
为了操作方便 shell 使用 了 zsh , 可以 搭配 k8s 官方的 zsh 框架 进行 补全 https://kubernetes.io/zh/docs/tasks/tools/included/optional-kubectl-configs-zsh/
(zsh 配置 可以 百度,有很多文章教怎么配)
配置效果如下
安装 docker buildx
作者 的 dockerfile 里面 带有 $TARGETPLATFORM TARGETARCH TARGETOS 等参数 ,在debian 里面 跑 make docker-build 会报错
询问作者得知要安装 docker buildx https://docs.docker.com/buildx/working-with-buildx/#manual-download 需要在 https://github.com/docker/buildx/releases/tag/v0.7.1 这里面 下载 对应版本 的 可执行文件 然后 把 他 移动到 $HOME/.docker/cli-plugins 这个目录里面 记得改名叫 docker-buildx 并给 可执行权限 然后 运行 docker buildx install 安装 docker-buildx
另外 make docker-build 的时候 下载 go 依赖包很慢 需要 给go 加上 国内 源 ,
当运行 go download 的时候 我这里也会报错 可以 把 go download 这一行整行删除 ,因为go build 的时候 也会 下载依赖包的 我这里把 go download 这一行删除 能跑过,不删除 就 报错 ……
安装 istio
先在istio 下载界面 下载 压缩包 https://github.com/istio/istio/releases/tag/1.13.0 解压 后 cd 进去
然后执行
istioctl install --set profile=default -y
安装创建持久化存储的一些文件
作者 的 mysql.yaml 我这里 没有办法 跑 ,user-db post-db 等 pod 起不来
kubectl describe pod user-db-6b8765cdd5-qzzqh
查看 event说却 pvc ,问了作者才知道 他 苹果 的 pv sc 都是配好的…… linux 下 没有默认的 要自己配置 才行
先创建 sc sc.yaml
因为项目有 4 个 mysql.yaml 所以创建 4 个 对应的pv
以 user-pv.yaml 为例 ,别的都是 metadata.name 换个对应的 名字就行了
接着修改 作者 的 mysql.yaml 加上 两行 分别绑定 sc 和对应 的 pv
然后 在 执行
make kube-deploy
命令 部署 执行k get pods -o wide
查看容器 可以 看到 至少有一 个 db 是 跑起来 了…… 别的全失败 了,去看看原因 ……边学习边写 , 没有写完 ,后面 在写 ……