forked from rook/rook.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
197 lines (188 loc) · 10.3 KB
/
index.html
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
---
asciinema: true
stylesheet: index
---
{% include values.inc %}
<div id="holder">
<section class="grid-middle hero">
<div class="col-5_md-12">
<h1>Open-Source,<br />Cloud-Native Storage for Kubernetes</h1>
<p>Production ready management for File, Block and Object Storage</p>
<a class="button" href="{{ gettingStartedLink }}">Try it out now</a>
</div>
<div class="col-7_md-12_md-first">
<img src="{{ "/images/index-hero.svg" | relative_url }}" />
</div>
</section>
<h1 class="text-center">What is Rook?</h1>
<section class="grid-middle">
<div class="col-6_md-12">
<img src="{{ "/images/index-what-is-rook.svg" | relative_url }}" />
</div>
<div class="col-6_md-12">
<h2>Storage Operators for Kubernetes</h2>
<p>Rook turns distributed storage systems into self-managing, self-scaling, self-healing storage services. It automates the tasks of a storage administrator: deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management.<br /><br />Rook uses the power of the Kubernetes platform to deliver its services via a Kubernetes Operator for each storage provider.</p>
<div class="github-pills">
<div id="watch-pill" class="pill">
<a href="https://github.com/rook/rook/subscription">Watch</a>
<a id="watch-pill-count" class="count" href="https://github.com/rook/rook/watchers"></a>
</div>
<div id="star-pill" class="pill">
<a href="https://github.com/rook/rook">Star</a>
<a id="star-pill-count" class="count" href="https://github.com/rook/rook/stargazers"></a>
</div>
<div id="fork-pill" class="pill">
<a href="https://github.com/rook/rook/fork">Forks</a>
<a id="fork-pill-count" class="count" href="https://github.com/rook/rook/network"></a>
</div>
</div>
</div>
</section>
<section class="grid-middle storage">
<div class="col-6_md-12">
<h2>Multiple Storage Providers</h2>
<p>Rook orchestrates multiple storage solutions, each with a specialized Kubernetes Operator to automate management. Choose the best storage provider for your scenarios, and Rook ensures that they all run well on Kubernetes with the same, consistent experience.</p>
<div class="grid providers">
<div class="col-4_xs-6"><span>Ceph</span></div>
<div class="col-4_xs-6"><span>Cassandra</span></div>
<div class="col-4_xs-6"><span>NFS</span></div>
</div>
</div>
<div class="col-6_md-12">
<div class="terminal-wrapper">
<h3 id="terminal-header">Ceph</h3>
<div class="terminal-body">
<div id="terminal-player-wrapper" class="terminal">
<asciinema-player id="terminal-player" cols="61" rows="16" preload loop speed="1.25" src="{{ "/data/ceph.cast" | relative_url }}"></asciinema-player>
</div>
</div>
<div class="terminal-buttons">
<div class="grid">
<div class="col-4_xs-6"><button class="active" type="button" onclick="terminalTypeClick(this, 'Ceph')" data-terminal-rows="16" data-terminal-src="{{ "/data/ceph.cast" | relative_url }}">Ceph</button></div>
<div class="col-4_xs-6"><button type="button" onclick="terminalTypeClick(this, 'Cassandra')" data-terminal-rows="9" data-terminal-src="{{ "/data/cassandra.cast" | relative_url }}">Cassandra</button></div>
<div class="col-4_xs-6"><button type="button" onclick="terminalTypeClick(this, 'NFS')" data-terminal-rows="13" data-terminal-src="{{ "/data/nfs.cast" | relative_url }}">NFS</button></div>
</div>
</div>
</div>
</div>
</section>
<h1 class="text-center">Who loves Rook?</h1>
<p class="text-center">With hundreds of contributors and millions of downloads of the Rook software, this true community-driven effort is putting dynamic orchestration, high performance, and solid reliability in the hands of a global user base.<br /><br />Rook operators are deployed in production across multiple industries, enabling them to store, deliver & protect the data that powers their businesses.</p>
<section class="grid-middle affiliates">
<div class="col-2_xs-4">
<a href="//pacificresearchplatform.org/">
<img
class="prp"
src="{{ "/images/affiliates/prp.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.cengn.ca">
<img
class="cengn"
src="{{ "/images/affiliates/cengn.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.crowdfox.com">
<img
class="crowdfox"
src="{{ "/images/affiliates/crowdfox.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.cloudways.com">
<img
class="cloudways"
src="{{ "/images/affiliates/cloudways.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//gini.net">
<img
class="gini"
src="{{ "/images/affiliates/gini.svg" | relative_url }}"/>
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.radiosound.com/">
<img
class="radiosound"
src="{{ "/images/affiliates/radiosound.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
</section>
<h1 class="text-center">Features of Rook</h1>
<section class="grid-bottom features">
<div class="col-3_xs-6">
<img class="automate" src="{{ "/images/features/automate.svg" | relative_url }}" />
<span>Simple and reliable automated resource management</span>
</div>
<div class="col-3_xs-6">
<img class="scale" src="{{ "/images/features/scale.svg" | relative_url }}" />
<span>Hyper-scale or hyper-converge your storage clusters</span>
</div>
<div class="col-3_xs-6">
<img class="distribute" src="{{ "/images/features/distribute.svg" | relative_url }}" />
<span>Efficiently distribute and replicate data to minimize loss</span>
</div>
<div class="col-3_xs-6">
<img class="provision" src="{{ "/images/features/provision.svg" | relative_url }}" />
<span>Provision, file, block, and object with multiple storage providers</span>
</div>
<div class="col-3_xs-6">
<img class="manage" src="{{ "/images/features/manage.svg" | relative_url }}" />
<span>Manage open-source storage technologies</span>
</div>
<div class="col-3_xs-6">
<img class="elasticstorage" src="{{ "/images/features/elasticstorage.svg" | relative_url }}" />
<span>Easily enable elastic storage in your datacenter</span>
</div>
<div class="col-3_xs-6">
<img class="opensource" src="{{ "/images/features/opensource.svg" | relative_url }}" />
<span>Open source software released under the Apache 2.0 license</span>
</div>
<div class="col-3_xs-6">
<img class="optimize" src="{{ "/images/features/optimize.svg" | relative_url }}" />
<span>Optimize workloads on commodity hardware</span>
</div>
</section>
</div>
<script>
function githubFetch(path) {
var el = document.createElement('script');
var head = document.getElementsByTagName('head')[0];
el.src = path + '?callback=githubFetchCallback';
head.insertBefore(el, head.firstChild);
}
function githubFetchCallback(obj) {
document.getElementById('watch-pill-count').innerText = (obj.data.subscribers_count).toLocaleString();
document.getElementById('star-pill-count').innerText = (obj.data.stargazers_count).toLocaleString();
document.getElementById('fork-pill-count').innerText = (obj.data.network_count).toLocaleString();
}
function terminalTypeClick(elem, text) {
if (elem.classList.contains('active')) {
return;
}
var terminalPlayer = document.getElementById('terminal-player');
var terminalPlayerWrapper = document.getElementById('terminal-player-wrapper');
var terminalSrc = elem.dataset.terminalSrc;
var terminalRows = elem.dataset.terminalRows;
var buttons = document.querySelectorAll('.terminal-buttons button');
for (var i = 0; i < buttons.length; i++) {
buttons[i].classList.remove('active');
}
elem.classList.add('active');
document.getElementById('terminal-header').innerText = text;
terminalPlayerWrapper.innerHTML = '<asciinema-player id="terminal-player" cols="61" rows="' + terminalRows + '" preload autoplay loop speed="1.25" src="' + terminalSrc + '"></asciinema-player>';
}
githubFetch('https://api.github.com/repos/rook/rook');
document.getElementById('terminal-player').addEventListener('loadedmetadata', function(e) {
this.play();
});
</script>