云原生自动化部署极客时间云原生训练营
下栽地止:ukoou.com/resource/1055
系统突发流量通常无法预计,因此常用的解决方案是,通过人工扩容系统的方式,使系统具备支持更大规模用户访问的能力。在完成架构拆分之后,弹性系统还需要具备自动化部署能力,以便根据既定的规则或者外部流量突发信号触发系统的自动化扩容功能,满足系统对于缩短突发流量影响时长的及时性要求,同时在峰值时段结束后自动缩容系统,降低系统运行的资源占用成本。
配置Kubernetes开发环境
我们将在Mac上使用docker环境编译kuberentes。
安装依赖
brew install gnu-tar
Docker环境,至少需要给容器分配4G内存,在低于3G内存的时候可能会编译失败。
执行编译
切换目录到kuberentes源码的根目录下执行:
./build/run.sh make可以在docker中执行跨平台编译出二进制文件。
需要用的的docker镜像:
gcr.io/google_containers/kube-cross:v1.7.5-2
该镜像基于Ubuntu构建,大小2.15G,编译环境中包含以下软件:
Go1.7.5 etcd protobuf g++
其他golang依赖包
在我自己的电脑上的整个编译过程大概要半个小时。
编译完成的二进制文件在/_output/local/go/bin/目录下。
---
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "nginx"
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: gcr.io/google_containers/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
annotations:
volume.alpha.kubernetes.io/storage-class: anything
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi



