Nextcloud 优点
- 完全开源
- 支持web界面、手机ios系统、手机安卓系统
- 容器化部署
准备环境
- 部署 docker、docker-compose (本文不讲docker、docker-compose部署)
闪射理想之光吧心灵之星!把光流注入未来的暮霭之中。
在k8s中节点会通过docker pull机制获取外部的镜像,那么什么时候清除镜像呢?k8s运行的容器又是什么时候清除呢?
api-server
: 运行在master,无状态组件,go自动内存垃圾回收controller-manager
: 运行在master,无状态组件,go自动内存垃圾回收,owner机制提供resource垃圾回收scheduler
: 运行在master,无状态组件,go自动内存垃圾回收kube-proxy
: 运行在node,无状态组件,无垃圾收集需要kubelet
:运行在node,无状态组件,需要管理宿主机的image和containerKubelet
:会定期进行垃圾回收(Garbage Collection),以清理节点上的无用镜像和容器。
截止到 v1.15
版本,垃圾回收间隔时间还都是在源码中固化的,不可自定义配置,如果节点上已经运行了 Kubelet,不建议再额外运行其它的垃圾回收工具,因为这些工具可能错误地清理掉 Kubelet 认为本应保留的镜像或容器,从而可能造成不可预知的问题。
Grafana Tanka
是 Kubernetes 集群的配置工具,由 Jsonnet
数据模板语言实现。
使用它比使用 Yaml
来定义 Kubernetes 资源更简洁
。Jsonnet
高度可重用,使你能通过组合现成的库来实现你的技术栈。
干净
:使用 Jsonet
语言表示你的Kubernetes应用,比YAML更简洁。可重用
:构建应用程序库,将它们导入任何地方,甚至在GitHub上共享它们!简洁
:使用Kubernetes库,不再需要模板。变化
:以轻松地知道确切的变化。生产环境Ready
:Tanka 部署了 Grafana Cloud 和更多生产设置。开源
:就像广受欢迎的 Grafana
和 Loki
项目一样,Tanka 是完全开源的。Docker 启动或者重启时报以上两个错误:
Error starting daemon: Devices cgroup isn't mounted
Error response from daemon: Cannot restart container rsnmp_v4: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:297: applying cgroup configuration for process caused \"mountpoint for devices not found\"": unknown
问题都是 cgroup
未挂载。可以通过下面脚本修复。
对于公有云上的 Kubernetes 集群,规模大了之后很容器碰到配额问题,需要提前在云平台上增大配额。这些需要增大的配额包括:
参考gce随着node节点的增加master节点的配置:
使用 Docker Volumes
时,有时需要挂载一个宿主机目录或者文件,提供数据可持续或者容器内部服务配置文件。
使用命令 docker run -it --rm -v /root/test.txt:/root/test.txt debian:10 bash
挂载文件(test.txt 默认权限 644)时,通过 vim
修改宿主 test.txt
文件,但是容器中 test.txt
没有修改。这是为什么?
Docker 中,mount volume 的原理是借用了 Linux Namespace
中的 Mount NameSpace
,隔离系统中不同进程的挂载点视图,实际文件是没有变化。比如上面的例子,在container中,bash 实际就是一个运行在宿主机上的进程,被Docker用Linux分别隔离了 Mount Namespace
、UTS Namespace
、IPC Namespace
、PID Namespace
、Network Namespace
和User Namespace
,使得它看上去好像运行在了一个独立的
、相对隔离的
系统上,但实际它的一切资源都是宿主机在不同Namespace中的一个投影,文件也不例外。
为什么宿主机上修改 test.txt
文件,而容器中 test.txt
文件没有变化?
Linux中,证明文件是否相同的根本途径是
,判断其 inode
,如果两个文件的inode相同,两个文件必定为同一文件,从而两个文件的内容也必然相同。
还在为写 kubernetes yaml
烦恼吗?还在为记不住 kubernetes yaml
而心累吗?这些都没有关系,推荐一个kubernetes yaml 生成器
,帮小伙伴们解决这些痛苦!
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true