node节点信息1234192.168.99.100 k8s-master deploy、mon*1、osd*3192.168.99.101 node1 mon*1、 osd*3192.168.99.102 node2 mon*1、 osd*3
禁用防火墙123456sed-i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/configsetenforce 0systemctl stop iptablessystemctl stop firewalldsystemctl disable iptablessystemctl disable firewalld
修改yum源123456yum clean allcurl http://mirrors.aliyun.com/repo/Centos-7.repo >/etc/yum.repos.d/CentOS-Base.repocurl http://mirrors.aliyun.com/repo/epel-7.repo >/etc/yum.repos.d/ ...
ceph
未读上篇介绍了部署Ceph的环境准备工作,本篇主要内容是介绍手动部署Ceph的全过程。
环境集群环境第二篇,我们创建了3台虚拟机,虚拟机配置如下:
12345678910111213[root@ceph-1 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 100G 0 disk├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 2G 0 lvm [SWAP] └─centos-home 253:2 0 47G 0 lvm /homesdb 8:16 0 2T 0 disksdc 8:32 0 2T 0 d ...
使用operator sdk开发k8s Operator环境安装
安装operator sdk :参考安装文档 https://github.com/operator-framework/operator-sdk/blob/master/doc/user/install-operator-sdk.md
其他:
k8s集群(本地使用~/.kube/config连接的虚拟机集群)
golang
创建项目
创建项目1operator-sdk new operator-demo --repo github.com/qianbaidu/operator-demo
创建Api / controller 123cd operator-demooperator-sdk add api --api-version=app.qipajun.com/v1alpha1 --kind=AppServiceoperator-sdk add controller --api-version=app.qipajun.com/v1alpha1 --kind=AppService
生 ...
linux
未读使用github actions构建部署博客博客之前使用markdown写完后,本地写了个php脚步读取md文件,push到WordPress接口发布,不太优雅。主要是最近感觉小屏幕风格样式不太好看,换了个大屏自适应主题。
所以博客做了一些调整:
博客改成基于hugo,markdown文件管理方便,只需负责渲染生成静态页面部署即可
之前博客markdown文件文章参数补全适配hugo模板重新推送渲染
新增github actions构建部署,提交代码触发hook直接构建、部署极其方便,尝试了一下github actions自动构建、发布
使用github actions构建部署博客github actions构建部署博客流程:
提交代码触发hook
触发action job:
拉取代码
编译
上传release
调用nginx api
nginx api path执行脚本
下载最新release
解压缩、部署
配置github actions流程:
项目根目录touch.github/workflows/main.yml
编写流程配置
123456789101112 ...
k8s CRD开发
开发前置环境需求
kubebuilder
kustomize
k8s
kubectl
golang
docker
创建crd12kubebuilder init --domain qipajun.com --license apache2 --owner "alex"kubebuilder create api --group infra --version v1 --kind VirtulMachine
安装启动crd
12# k8s创建资源make install
1234# 查看资源➜ kubectl get crdNAME CREATED ATvirtulmachines.infra.qipajun.com 2020-04-07T12:58:51Z
12# 运行项目make run
12# 创建k8s crd资源kubectl apply -f config/samples/
部署controller到集群中1234# 构建镜像make docker-b ...
golang设计模式设计模式基本原则
1.单一职责原则(Single Responsibility Principle, SRP) : 一个类应该只负责一项职责,不能将多个职责放到一个类中
2.接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口。使用多个专门的接口取代一个统一的接口
3.依赖倒转:高层模块不应该依赖细节。细节应该依赖抽象
4.里氏替换:子类中尽量不要重写父类的方法
5.开闭原则:对扩展开放,对修改关闭
6.迪米特法则:也称最少知道原则,一个类对自己依赖的类知道的越少越好。两个类如果不必彼此同行,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三者发生剪接交互
7.合成复用原则:尽量使用合成、聚合的方式,而非继承
创建型
单例模式:一个类只存在一个实例 代码
工厂模式:
简单工程模式:由一个工厂对象决定创建出哪一种产品类的实例。定义一个创建对象的类,由这个类来封装实例化对象的行为(通常由传入参数判断要创建、实例化工厂)
工厂方法模式: 定义一个创建对象的抽象方法,由子类决定要实例化的类,工厂方法模式将对象的实例化推迟到子类(工厂实例化方法创建、实例移 ...
big-data
未读常用指令查看共享文件在linux下的哪个地方cd /mnt/hgfs/
在linux下解压压缩包tar xvzf
启动hadoop集群./start-all.sh 先进入cd /usr/local/src/目录再启动hadoop
从hdfs上把文件拿下来命令:./hadoop fs -get /1.data /usr/local/src/ 后面加上要把文件拿下来放到那个目录下
从hdfs上查看已经在的文件命令:./hadoop fs -ls /
查看集群运行好的文件输出outhadoop fs -text例子:hadoop fs -text /output_cachearchive_broadcast
本地模拟测试文件命令:
cat 文件名 | | python map.py | sort -k1
例子:cat The_Man_of_Property.t ...
docker
未读harbor安装部署安装docker12345678910yum install -y yum-utils device-mapper-persistent-data lvm2# 配置repository:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装最新版本docker-ceyum install docker-ce# 启动dockersystemctl start docker
安装docker-compose12345678910# 安装pipyum -y install python-pip# 安装pip install docker-compose# 查看版本确认安装成功[root@localhost ~]# docker-compose --versiondocker-compose version 1.24.0, build 0aa5906
安装harbor123456789101112131415161718# github 选择版本 ...
linux系统挂盘
查看磁盘
1sudo fdisk -l
12345678910111213141516sudo fdisk -l磁盘 /dev/xvda:53.7 GB, 53687091200 字节,104857600 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x000b956b 设备 Boot Start End Blocks Id System/dev/xvda1 * 2048 104857566 52427759+ 83 Linux磁盘 /dev/xvdb:322.1 GB, 322122547200 字节,629145600 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节
建立分区
1 ...
flutter
未读flutter常用命令
设备列表: flutter emulators
创建应用:flutter create my_app
运行应用: flutter run
环境检查: flutter doctor
开启一个模拟器: open -a Simulator
依赖: flutter packages get pub get packages
镜像12export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn