Q's blog

一些个人文档笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"experimental": false,
"registry-mirrors": [
"http://bc437cce.m.daocloud.io",
"https://docker.mirrors.ustc.edu.cn/",
"https://reg-mirror.qiniu.com",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"debug": true
}

Horizontal Pod Autoscaler(HPA,Pod水平自动伸缩),根据资源利用率或者自定义指标自动调整replication controller, deployment 或 replica set,实现部署的自动扩展和缩减,让部署的规模接近于实际服务的负载。HPA不适于无法缩放的对象,例如DaemonSet。

阅读全文 »

Apollo介绍

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

阅读全文 »

EFK由ElasticSearch、Fluentd和Kiabana三个开源工具组成。其中Elasticsearch是一款分布式搜索引擎,能够用于日志的检索,Fluentd是一个实时开源的数据收集器,而Kibana 是一款能够为Elasticsearch 提供分析和可视化的 Web 平台。这三款开源工具的组合为日志数据提供了分布式的实时搜集与分析的监控系统。

而在此之前,业界是采用ELK(Elasticsearch + Logstash + Kibana)来管理日志。Logstash是一个具有实时渠道能力的数据收集引擎,但和fluentd相比,它在效能上表现略逊一筹,故而逐渐被fluentd取代,ELK也随之变成EFK。

阅读全文 »

在Ingress中,跨域(CORS)的配置如下:

1
2
3
4
5
nginx.ingress.kubernetes.io/cors-allow-headers: >-
DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization
nginx.ingress.kubernetes.io/cors-allow-methods: 'PUT, GET, POST, OPTIONS'
nginx.ingress.kubernetes.io/cors-allow-origin: '*'
nginx.ingress.kubernetes.io/enable-cors: 'true'
阅读全文 »

官方文档:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/

pod字段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
apiVersion: v1
kind: Pod
metadata:
name: dapi-envars-fieldref
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "sh", "-c"]
args:
- while true; do
echo -en '\n';
printenv MY_NODE_NAME MY_POD_NAME MY_POD_NAMESPACE;
printenv MY_POD_IP MY_POD_SERVICE_ACCOUNT;
sleep 10;
done;
env:
- name: MY_NODE_NAME // 节点名称
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME // pod 名称
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE // 命名空间
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_IP // pod ip
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: MY_POD_SERVICE_ACCOUNT
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName //serviceAccountName
restartPolicy: Never
阅读全文 »

源码安装

1
2
3
4
5
6
7
8
9
10
cd
wget https://npm.taobao.org/mirrors/node/v14.2.0/node-v14.2.0-linux-x64.tar.xz
tar xf node-v14.2.0-linux-x64.tar.xz
mkdir /Data/apps/src -pv
mv node-v14.2.0-linux-x64 /Data/apps/src/
cd /Data/apps
chown -R `whoami`:`whoami` node./*
ln -s src/node-v14.2.0-linux-x64 node
echo 'PATH=$PATH:/Data/apps/node/bin' >> /etc/profile
source /etc/profile

清理无用的卷

1
2
#dangling的镜像为未被打标签和没有被任何容器引用的镜像。
docker volume rm $(docker volume ls -qf dangling=true)

删除未使用到的镜像

1
docker rmi $(docker images -q -f "dangling=true")

删除已停止的容器

1
docker rm $(docker ps -a -q)

Docker占用磁盘空间查看

1
docker system df
0%