Automate App Operation

How to Deploy • Database: PostgreSQL, MySQL, TiDB • Coordination service: etcd, ZooKeeper • Streaming: Kafka, Heron • Big data: Spark, Hadoop • Storage: Ceph, GlusterFS • Logging: ElasticSearch • Monitoring: Prometheus
展开查看详情

1.Automate App Operation Hongchao Deng hongchao.deng@coreos.com

2.App = ?

3.App = Code + Config

4.故事开始于…

5.

6.

7.

8.Development Deployment DNS 想法 程序 LoadBalancer 打包 实现 发布 docker build docker push

9.Demo

10.Demo

11.Deploy App Container • Docker/OCI • Standard app packaging format • Kubernetes/Swarm • Resource scheduling, cluster management

12.It is easy to deploy stateless apps. But how to deploy stateful apps?

13.How to Deploy • Database: PostgreSQL, MySQL, TiDB • Coordination service: etcd, ZooKeeper • Streaming: Kafka, Heron • Big data: Spark, Hadoop • Storage: Ceph, GlusterFS • Logging: ElasticSearch • Monitoring: Prometheus

14. Deploying those are much harder than stateless web apps

15.Prometheus

16. Complex dependencies Alert Manager Service Service Monitor Prometheu Alerting Rule

17.etcd

18. Membership Configuration etcd --name=example-etcd-cluster-0002 ... --initial-cluster= example-etcd-cluster-0001=http://example-etcd-cluster-0001.example-etcd- cluster.default.svc.cluster.local:2380, example-etcd-cluster-0000=http://example-etcd-cluster-0000.example-etcd- cluster.default.svc.cluster.local:2380, example-etcd-cluster-0002=http://example-etcd-cluster-0002.example-etcd- cluster.default.svc.cluster.local:2380

19.Self-updating Kubernetes

20. Update Strategy Target Version APIServer: v1.6.0 etcd: v3.1.4

21. Update Strategy Target Version APIServer: v1.6.0 -Backup before upgrade - Rolling upgrade etcd: v3.1.4 - Check upgrade path - Rollback within a minor

22.What makes them difficult to deploy and manage?

23.Complex operation logic

24.Introduce Operator

25. Current state of a cluster Observe • cluster size is 3 • cluster version is v1.2.3 Differences from desired config Analyze • cluster size should be 5 • cluster version should be v1.3.0 How to get there Act • configure and add members to 5 • upgrade member to v1.3.0 safely one-by-one

26. etcd Operator Common Tasks Advanced • Resize • Restore • Upgrade • TLS • Backup • Monitoring/Alerting • Failover

27.Declarative API

28. Create a cluster

29.kubectl create - f