Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。
对文字的特殊标注
标题
1 | # 一阶标题 或者快捷键Ctrl+1 |
下划线
1 | <u>下划线的内容</u> 或按快捷键Ctrl+U |
字体加粗
1 | **加粗内容** 或按快捷键Ctrl+B |
斜体
1 | *倾斜内容* 或按快捷键Ctrl+I |
分享知识,分享快乐
Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。
标题
1 | # 一阶标题 或者快捷键Ctrl+1 |
下划线
1 | <u>下划线的内容</u> 或按快捷键Ctrl+U |
字体加粗
1 | **加粗内容** 或按快捷键Ctrl+B |
斜体
1 | *倾斜内容* 或按快捷键Ctrl+I |
hexo-admin 是一个Hexo博客引擎的管理用户界面插件。这个插件最初是作为本地编辑器设计的,在本地运行hexo使用hexo-admin编写文章,然后通过
hexo g
或hexo d
(hexo g
是本地渲染,hexo d
是将渲染的静态页面发布到GitHub)将生成的静态页面发布到GitHub等静态服务器。如果你使用的是非静态托管服务器,比如自己买的主机搭建的hexo,那么一定要设置hexo-admin 的密码,否则谁都可以编辑你的文章。
首先进入hexo创建的博客项目的根目录下,执行
1 | npm install --save hexo-admin |
mac可能需要root权限,前面加个sudo
就可以了。如果报错缺少组件,则缺少什么安装什么,npm install
加缺少的组件。
运行下列命令启动hexo-admin :
hexo server -d
打开 http://localhost:4000/admin/ 就可以访问到hexo-admin管理页面了。
打开setting
,点击Setup authentification here
输入用户名,密码,密钥,下面会自动生成配置文件,复制加在hexo根目录下的_config.yml
中:
1 | admin: |
重启hexo,就可以看到登录页面了
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
定义数组
在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
1 | array_name=(value1 ... valuen) |
例如:
1 | array_name=(value0 value1 value2 value3) |
或者
1 | array_name=( |
还可以单独定义数组的各个分量:
1 | array_name[0]=value0 |
1 | # 查看集群信息 |
1 | # 查看namespaces |
1 | # 查看nodes节点 |
1 | # 删除所有pods |
1 | # 升级 |
包含了文件存储、计算、数据库等集群服务。
现有集群职能包括:
由于当前集群职能繁多,网络带宽、磁盘IO等为集群共享,会因大型离线任务占用大量网络或磁盘IO峰值,对线上业务会造成短暂延迟。且集群环境较为复杂,有较多对线上业务造成影响的风险。
鉴于后续业务发展,大数据平台的使用人数和执行任务将会快速上升,为了避免对线上业务的直接影响,提议部署一个次规模(20个节点内)的生产集群(以下简称在线集群)承接部分职能,减轻现有集群(以下简称离线离线计算集群)的压力,同时规划与隔离不同等级的任务。
在线集群主要职能为OLTP数据库服务(HBase),将业务主库迁移至在线集群可保证业务不受任何大规模计算任务(或者计算量比较集中的情况)所带来的延迟影响。
除此之外,在线集群将不会进行其他任何程序与任务以保证线上服务的稳定性。
tags: clean
停相关进程:
$ sudo systemctl stop kubelet kube-proxy flanneld docker
$
清理文件:
$ # umount kubelet 挂载的目录
$ mount | grep '/var/lib/kubelet'| awk '{print $3}'|xargs sudo umount
$ # 删除 kubelet 工作目录
$ sudo rm -rf /var/lib/kubelet
$ # 删除 docker 工作目录
$ sudo rm -rf /var/lib/docker
$ # 删除 flanneld 写入的网络配置文件
$ sudo rm -rf /var/run/flannel/
$ # 删除 docker 的一些运行文件
$ sudo rm -rf /var/run/docker/
$ # 删除 systemd unit 文件
$ sudo rm -rf /etc/systemd/system/{kubelet,docker,flanneld}.service
$ # 删除程序文件
$ sudo rm -rf /opt/k8s/bin/*
$ # 删除证书文件
$ sudo rm -rf /etc/flanneld/cert /etc/kubernetes/cert
$
清理 kube-proxy 和 docker 创建的 iptables:
$ sudo iptables -F && sudo iptables -X && sudo iptables -F -t nat && sudo iptables -X -t nat
$
删除 flanneld 和 docker 创建的网桥:
tags: registry, harbor
本文档介绍使用 docker-compose 部署 harbor 私有仓库的步骤,你也可以使用 docker 官方的 registry 镜像部署私有仓库(部署 Docker Registry)。
本文档用到的变量定义如下:
$ export NODE_IP=10.64.3.7 # 当前部署 harbor 的节点 IP
$
从 docker compose 发布页面下载最新的 docker-compose
二进制文件
$ wget https://github.com/docker/compose/releases/download/1.21.2/docker-compose-Linux-x86_64
$ mv ~/docker-compose-Linux-x86_64 /opt/k8s/bin/docker-compose
$ chmod a+x /opt/k8s/bin/docker-compose
$ export PATH=/opt/k8s/bin:$PATH
$
从 harbor 发布页面下载最新的 harbor 离线安装包
tags: registry, ceph
注意:本文档介绍使用 docker 官方的 registry v2 镜像部署私有仓库的步骤,你也可以部署 Harbor 私有仓库(部署 Harbor 私有仓库)。
本文档讲解部署一个 TLS 加密、HTTP Basic 认证、用 ceph rgw 做后端存储的私有 docker registry 步骤,如果使用其它类型的后端存储,则可以从 “创建 docker registry” 节开始;
示例两台机器 IP 如下:
$ ceph-deploy rgw create 172.27.132.66 # rgw 默认监听7480端口
$
$ radosgw-admin user create --uid=demo --display-name="ceph rgw demo user"
$
tags: addons, EFK, fluentd, elasticsearch, kibana
EFK 对应的目录:kubernetes/cluster/addons/fluentd-elasticsearch
$ cd /opt/k8s/kubernetes/cluster/addons/fluentd-elasticsearch
$ ls *.yaml
es-service.yaml es-statefulset.yaml fluentd-es-configmap.yaml fluentd-es-ds.yaml kibana-deployment.yaml kibana-service.yaml
$ cp es-statefulset.yaml{,.orig}
$ diff es-statefulset.yaml{,.orig}
76c76
< - image: longtds/elasticsearch:v5.6.4
---
> - image: k8s.gcr.io/elasticsearch:v5.6.4
$ cp fluentd-es-ds.yaml{,.orig}
$ diff fluentd-es-ds.yaml{,.orig}
79c79
< image: netonline/fluentd-elasticsearch:v2.0.4
---
> image: k8s.gcr.io/fluentd-elasticsearch:v2.0.4
DaemonSet fluentd-es
只会调度到设置了标签 beta.kubernetes.io/fluentd-ds-ready=true
的 Node,需要在期望运行 fluentd 的 Node 上设置该标签;
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kube-node1 Ready <none> 3d v1.10.4
kube-node2 Ready <none> 3d v1.10.4
kube-node3 Ready <none> 3d v1.10.4
$ kubectl label nodes kube-node3 beta.kubernetes.io/fluentd-ds-ready=true
node "kube-node3" labeled