k8s wsl部署问题汇总
wsl部署k8s,直接安装docker windows进行打开k8s就行,
不需要自己遭罪的使用什么脚本来安装
deployment
部署内容,使用的spec作为container来实现容器部署,container里面进行定义image镜像,副本数量,镜像端口,这个镜像是docker对dockerfile打包生成的image,可以使用makefile来进行简化流程。
makefile 定义打包流程,dockerfile设置基础镜像,然后把使用交叉编译得到的产物复制到镜像空间里面,之后运行产物。
1 | FROM ubuntu:20.04 |
1 | .PHONY:docker |
现在是deployment
1 | apiVersion: apps/v1 |
定义选择的app还有容器使用的景象和端口,还有副本数量
持久化层
pvc与pv
pv是映射本地存放和k8s的虚拟存储的地方
1 | apiVersion: v1 |
:::info
path: “/run/desktop/mnt/d/code/mysql” 这里需要加入/run/desktop才可以
:::
pvc就相当于代理人,我申请的是什么虚拟存储,需要在这个存储上开辟多少空间,相当于他是操作行为定义。
1 | apiVersion: v1 |
通过使用storage来进行定位是哪一个存储
两个bug地方。
问题:PersistentVolume 失效
1 | The PersistentVolume "mysqldata" is invalid: spec.persistentvolumesource: Forbidden: is immutable after creation |
原因:当原来的PV或PVC还在,而你又创建了一个新的PV, 并与原来的重名,则会得到该错误。
解决:将原来的PV或PVC删掉,再重新创建新的。
1 | $ kubectl delete pvc mysqldata -n testnamespace |
问题:删除pv 、pvc 一直卡着
1 | $ kubectl patch pv pvname -p '{"metadata":{"finalizers":null}}' |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.