kubernetes cookbook 之命令行解析篇
命令行解析几乎是所有程序的标准功能,go 语言标准库中提供了 flag 模块,而 kubernetes 中则使用了 pflag 和 cobra 来构建。 flag 标准库 flag 包内置了常用的几种参数类型:string,int,bool,time.Duration,如果需要自定义类型,例如以 , 分割的字符串数组,就需要实现 flag.Value 接口。 基本类型 基本的使用方法...
命令行解析几乎是所有程序的标准功能,go 语言标准库中提供了 flag 模块,而 kubernetes 中则使用了 pflag 和 cobra 来构建。 flag 标准库 flag 包内置了常用的几种参数类型:string,int,bool,time.Duration,如果需要自定义类型,例如以 , 分割的字符串数组,就需要实现 flag.Value 接口。 基本类型 基本的使用方法...
开始新项目之前我总是会习惯先设计好日志模块,这样可以避免在开发过程中代码行中充斥着大量且临时的 print 输出语句。kubernetes 的日志模块是 C++ 版本 google/glog 的 Go 语言实现,基本实现了原生 glog 的日志格式,早期版本中是 golang/glog,目前已经迁移到 klog 作为日志库,被替换的原因总结下来有以下几条: glog 默认会在 ini...
写在前面:本系列是在阅读 kubernetes 源码过程中逐渐整理的一些值得借鉴的编程范式(recipe),汇集起来也就有了这个 cookbook,所以内容展示的更多的可能是 code snippet,而不是 How to use Kubernetes。 Kubernetes Project Layout Go 语言社区提供了一套标准的工程目录结构方案,详细参考:https://gith...
本文记录了如何使用 kickstart PXE 批量部署服务器。 安装步骤 1. 配置 dnsmasq yum install dnsmasq /etc/dnsmasq.conf domain=jfbrother.centos7.lan # DNS server=114.114.114.114 #bind-interfaces interface=eth0 # DHCP rang...
最近在做高校大数据实验室项目过程中发现,就场景而言相比较容器老师更容易接受虚拟机的模式,例如想让学生搭个 hadoop 集群,然后在此基础上做实验,就需要有一个直观的网络拓扑让学生理解。kubernetes 只暴露应用入口的设计原则显然不适合。因此,kubernetes on openstack 兴许是个好的解决方案。 openstack 已经发布到 rocky 版本了,各个核心组件已经相...
最近在研究 kubernetes 各个节点间容器通信的原理,深感自己网络知识的不足,从简单的 flannel 开始看起,搜集整理了网上的资料,记录下来。 kubernetes 各节点间网络结构如下图: 实验环境如下: IP 角色 服务 node1 192.1...
最近在尝试使用 ansible 部署 ceph 作为对象存储使用,因为没有部署 openstack,所以只能手动对虚拟机进行快照以及回滚操作了。但是发现 virsh 没有对挂载盘进行 snapshot 相关的操作。只能对虚拟机整机级别的快照回滚。回忆 cinder 对 volume 的快照,取决于后端存储是否支持,例如 ceph 对 rbd 就提供了 snapshot 的操作。这篇文章基于 ...
最近这段时间补习了下 Spark 相关的知识点,也纠正了之前不少错误的理解,总的来说实践出真理,只有动手才能更好的理解。这篇文章主要记录第一次使用 spark 结合 hadoop 跑 python 程序的过程,算是大数据学习的起点吧。 Spark 的运行模式 官网上已经很详细的介绍了几种模式,我就总结下: 1. Local 由于本地资源有限,用于开发测试用,验证代码。 2. Sta...
针对线上 Zabbix 所需数据库磁盘占用空间进行了一个简单的计算。 计算公式 定义: 被监控服务器数为:n(台) 每台被监控服务器监控项为:m(个) 监控项更新间隔平均值约为:f1(秒) 监控项历史数据保留时长为:t1(秒) 监控项趋势存储时间为:t2(秒) 一条MySQL记录占用字节数为:x(B) 已知: 趋势数据每小时生成一次,即趋势数据更新间隔 f2 = 3600...
随着公司开发业务的不断增重,Dell 服务器上的虚拟机日益增多,而虚拟机磁盘却都压在物理服务器单块raid 磁盘上共享 IO。考虑到某台虚拟机将要部署爬虫业务,可能占用大量 IO,因此防患与未然,限制其虚拟机的磁盘 IO,以免影响其他虚拟机或者宿主机的正常读写。 鉴于我的经验以及公司运维团队规模,部署的是 KVM 虚拟化,通过 Libvirt 管理虚机,网络是桥接模式的 flat netw...