alias clean_merged='git checkout master && git branch --merged | grep -v master | xargs git branch -D'
Blog
-
clean_merged 清理已经合并的 git 分支
-
git 本地新建分支在远端自动创建并设置 upstream
.git/config 添加
[push] default = currentpush 的时候加上 -u
git push -u
-
docker-compose
sudo pip install -U docker-compose
编写
version: '3.2' services: db: image: mysql:5.7.21 container_name: mysql hostname: mysql-test-1 restart: always ports: - 3306:3306 environment: - MYSQL_ALLOW_EMPTY_PASSWORD=YES volumes: - ./tmp:/var/lib/mysql broker: image: redis:3.0-alpine command: redis-server container_name: broker hostname: broker-test-1 restart: always ports: - 6379:6379 volumes: - ./tmp:/var/lib/redis拉起 docker
docker-compose up -d
-
关闭 swap 操作
检查:
free -m # 应该 Swap 显示全是 0
备份 /etc/fstab
cp /etc/fstab /tmp/fstab.`date +%F`
删除 /etc/fstab 中 swap 挂载项
vim /etc/fstab
关闭所有 swap
swapoff -a
观察进程使用 swap 和 swapoff -a 之后回收情况,对于不能回收 swap 的进程需要安排时间重启
free -m for file in /proc/*/status ; do cat $file | awk '/Name|^Pid|VmSwap/{printf $2 " " $3 $4}END{ print ""}' | grep kB | grep -v '0 kB' ; done | sort -k 3 -n -
kubernetes权威指南读后总结
k8s 的优点:
1. 开发和运维的高手编写,产品思维好,贴近需求。掌握一些网络,linux, iptables,docker 知识的工程师就能搭起来。就像早期的 linux, HTTP 一样有缺点,但最核心功能简单高效;
2. k8s 将自己打造成一个编排容器的平台,把管理容器的部分抽象成 Container Runtime Interface, CRI。编排容器不只可以是 docker,还可以是 rkt;
3. 把自己抽出来当一个平台,计划将自建机房,云供应商都纳入管理,跨机房迁移简单。感觉随时可以对 docker 和 一些云服务商进行降维打击;
4. 配置简单上线就简单,用的人就多。如果使用 k8s,可能有几个阶段就能完全接入:
1. Deployment 功能,结合自己的 CI/CD 。不管单体应用还是微服务,自动解决大部分无状态应用上线变更需求,同时做好监控告警和日志收集;
2. 使用 Service + dns 功能,把应用包装成一系列有 load balancer 和 私有域名的微服务,基本解决无状态应用上线;
3. Jobs 功能,定时处理任务;上面问题解决后,可以腾出很多时间玩点高级的:
4. Stateful Set + 存储 + dns 提供有状态的服务,可配置集群 redis, etcd, cassandra, mongodb等;
5. Ingress nginx 提供四层 七层入口;
6. 环境变量植入 容器内部访问 apiserver,基于 apiserver 做逻辑功能;
7. namespace 隔防,网络隔离;
8. 资源配额,精心规划 requests limits 设置,提高资源利用率;
9. Helm 管理这些 k8s 应用配置,基础设施即代码。 -
docker 网桥
Docker 创建出来的每一个容器,都会创建一个虚拟的以太网设备(Veth 设备对),其中一端关联到网桥上,另一端使用 Linux 的网络命名空间技术,映射到容器内的 eth0 设备。
以 CentOS 为例,安装工具
yum install -y bridge-utils
查看桥接
brctl show