{"id":294991,"date":"2019-11-21T15:00:37","date_gmt":"2019-11-21T15:00:37","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=294991"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=294991","title":{"rendered":"\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 CEPH \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0435\u0433\u043e \u043a Kubernetes"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/465399\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/a0b\/8ca\/ad7\/a0b8caad7cb449ff8655bf584a68ca8b.png\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/462473\/\">\u0427\u0430\u0441\u0442\u044c 1 \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438. \u0427\u0430\u0441\u0442\u044c 1 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Kubernetes HA \u043d\u0430 bare metal (Debian)<\/a><\/p>\n<p>  <\/p>\n<h2>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430!<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"https:\/\/habr.com\/ru\/post\/462473\/\">\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes. \u041d\u043e \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 Kubernetes \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c stateless \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c \u0438\u0445 \u043f\u0440\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430\u0445 \u043f\u043e\u0434\u043e\u0432.<br \/>  \u0414\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0432 Kubernetes \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043c\u0430 (volume). \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 Kubernetes, \u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043e\u0441\u043e\u0431\u043e \u043d\u0435\u0442. \u041d\u0430\u043c \u043b\u0438\u0448\u044c \u043d\u0443\u0436\u043d\u043e \u0443 Google, Amazon \u0438\u043b\u0438 \u0438\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0437\u0430\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u0438, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443\u044f\u0441\u044c <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 <\/a>, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u043c\u0430 \u043a \u043f\u043e\u0434\u0430\u043c.<br \/>  \u041a\u043e\u0433\u0434\u0430 \u0436\u0435 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 bare metal, \u0442\u0443\u0442 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 ceph.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443: <\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 Ceph<\/li>\n<li>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Ceph \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Kubernetes<a name=\"habracut\"><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f. \u0412\u043e \u043f\u0435\u0440\u0432\u044b\u0445, \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e \u043c\u043e\u0435\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443. \u0412\u043e \u0432\u0442\u043e\u0440\u044b\u0445, \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 ceph \u0438 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443. <\/p>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u043c\u0443 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u0434 \u043a\u0430\u043a\u0438\u0435 \u043b\u0438\u0431\u043e \u043d\u0443\u0436\u0434\u044b, \u044f \u043b\u0438\u0448\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0438 \u043f\u043e\u043d\u044f\u0442\u0438\u044f. \u041d\u0435 \u0431\u0443\u0434\u0443 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u0441\u044f \u0432 &#171;\u0442\u044e\u043d\u0438\u043d\u0433&#187; \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443, \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u043e\u0441\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0412\u044b \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0412\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b.<\/p>\n<p>  <\/p>\n<ol>\n<li> <a href=\"#vm\">C\u043f\u0438\u0441\u043e\u043a \u0445\u043e\u0441\u0442\u043e\u0432, \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0445\u043e\u0441\u0442\u043e\u0432, \u0432\u0435\u0440\u0441\u0438\u0438 \u041e\u0421 \u0438 \u041f\u041e<\/a><\/li>\n<li> <a href=\"#ceph\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u043b\u0430\u0441\u0442\u0440\u0430 ceph<\/a><\/li>\n<li> <a href=\"#before\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u043e\u0434 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439<\/a><\/li>\n<li> <a href=\"#ceph-deploy\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 ceph-deploy<\/a><\/li>\n<li> <a href=\"#ceph-install\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 ceph<\/a><\/li>\n<li> <a href=\"#ceph-network\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438<\/a><\/li>\n<li> <a href=\"#ceph-pack\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 ceph<\/a><\/li>\n<li> <a href=\"#ceph-mon\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432<\/a><\/li>\n<li> <a href=\"#ceph-osd\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 OSD<\/a><\/li>\n<li> <a href=\"#kubernetes\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 ceph \u043a kubernetes<\/a><\/li>\n<li> <a href=\"#ceph-pool\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u043b\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/li>\n<li> <a href=\"#ceph-key\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u043a\u043b\u044e\u0447\u0435\u0439<\/a><\/li>\n<li> <a href=\"#kubernetes-secrets\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 client secret<\/a><\/li>\n<li> <a href=\"#kubernetes-provisioner\">\u0414\u0435\u043f\u043b\u043e\u0439 ceph rbd provisioner<\/a><\/li>\n<li> <a href=\"#storage-class\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 storage class<\/a><\/li>\n<li> <a href=\"#test\">\u0422\u0435\u0441\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0432\u044f\u0437\u043a\u0438 kubernetes + ceph<\/a><\/li>\n<li> <a href=\"#book\">\u0421\u043f\u0438\u0441\u043e\u043a \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 <\/a><\/li>\n<\/ol>\n<p>  <a name=\"vm\"><\/a>  <\/p>\n<h2>\u0421\u043f\u0438\u0441\u043e\u043a \u0445\u043e\u0441\u0442\u043e\u0432 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f <\/h2>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><b>Name<\/b><\/th>\n<th><b>IP \u0430\u0434\u0440\u0435\u0441<\/b><\/th>\n<th><b>Comment<\/b><\/th>\n<\/tr>\n<tr>\n<td>ceph01-test<\/td>\n<td>10.73.88.52<\/td>\n<td>ceph-node01 <\/td>\n<\/tr>\n<tr>\n<td>ceph02-test<\/td>\n<td>10.73.88.53<\/td>\n<td>ceph-node02<\/td>\n<\/tr>\n<tr>\n<td>ceph03-test<\/td>\n<td>10.73.88.54<\/td>\n<td>ceph-node03<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kd\/-z\/bd\/kd-zbdwb_76g1vvvgmtojoirseo.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u041e\u0421 Debian 9.5. \u042d\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0434\u0432\u0430 \u0434\u0438\u0441\u043a\u0430, \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434 \u041e\u0421, \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043b\u044f OSD \u0446\u0435\u0444\u0430.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u044f \u0431\u0443\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 ceph-deploy. \u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 ceph \u0438 \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0432\u0441\u0435 \u0448\u0430\u0433\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043d\u043e \u0446\u0435\u043b\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c ceph \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 kubernetes.<br \/>  Ceph \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u043b\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ssd \u0434\u0438\u0441\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/docs.ceph.com\/docs\/jewel\/start\/hardware-recommendations\/\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 ceph<br \/>  <\/a><\/p>\n<p>  <a name=\"ceph\"><\/a>  <\/p>\n<h2>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u043b\u0430\u0441\u0442\u0440\u0430 ceph<\/h2>\n<p>  <\/p>\n<p><strong>MON<\/strong><br \/>  <em>\u041c\u043e\u043d\u0438\u0442\u043e\u0440 \u2014 \u044d\u0442\u043e \u0434\u0435\u043c\u043e\u043d, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u0440\u043e\u043b\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440, \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Ceph-\u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u041c\u043e\u043d\u0438\u0442\u043e\u0440 \u0445\u0440\u0430\u043d\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044f\u0441\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u0430\u0440\u0442\u0430\u043c\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c\u0438. \u041a\u043b\u0438\u0435\u043d\u0442\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u0438\u0435 OSD \u043f\u0438\u0441\u0430\u0442\u044c\/\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u0440\u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440 (\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e). \u041a\u043b\u0430\u0441\u0442\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435, \u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c 3 \u0438\u043b\u0438 5 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432, \u0432\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430. \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u043d\u044b\u0445 \u0431\u044b\u043b\u043e \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u043c, \u0434\u0430\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439 \u0440\u0430\u0437\u0434\u0432\u043e\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u044f (split-brain). \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u043a\u0432\u043e\u0440\u0443\u043c\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u0443\u043f\u0430\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432, \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/em><br \/>  <strong>MGR<\/strong><br \/>  <em>\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 Ceph \u0434\u0435\u043c\u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0435\u043c\u043e\u043d\u043e\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c.<br \/>  \u0421 \u0432\u0435\u0440\u0441\u0438\u0438 12.x \u0434\u0435\u043c\u043e\u043d ceph-mgr \u0441\u0442\u0430\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.<br \/>  \u0415\u0441\u043b\u0438 \u0434\u0435\u043c\u043e\u043d mgr \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c.<\/em><br \/>  <strong>OSD (Object Storage Device)<\/strong><br \/>  <em>OSD \u2014 \u044d\u0442\u043e \u044e\u043d\u0438\u0442 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044f\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 OSD. \u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u0434\u0438\u0441\u043a. \u0418 \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 OSD \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 OSD-\u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u044d\u0442\u043e\u0442 \u0434\u0438\u0441\u043a.<\/em><\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0438 \u0434\u0435\u043c\u043e\u043d\u0430. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0435\u043c\u043e\u043d\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043a\u0430\u043a \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435, \u0438 \u0434\u0435\u043c\u043e\u043d OSD \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u043d\u0430\u0448\u0435\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>  <a name=\"before\"><\/a>  <\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u043e\u0434 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439<\/h2>\n<p>  <\/p>\n<p>\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 ceph \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wz\/9i\/gu\/wz9igu71hiezyom4zvtbxp6ye30.png\"><\/p>\n<p>  <\/p>\n<p>\u042f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u043d\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 ceph01-test \u043e\u043d\u0430 \u0436\u0435 \u0438 \u0431\u0443\u0434\u0435\u0442 Admin Node, \u043d\u0430 \u043d\u0435\u0439 \u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b ceph-deploy. \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u044b ceph-deploy \u0432\u0441\u0435 \u0443\u0437\u043b\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e ssh c Admin node. \u042f \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u043f\u0438\u0448\u0443 \u0432 hosts \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u0430 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">10.73.88.52     ceph01-test 10.73.88.53     ceph02-test 10.73.88.54     ceph03-tset<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u044e \u043a\u043b\u044e\u0447\u0438 \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0445\u043e\u0441\u0442\u044b. \u0412\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u044f \u0431\u0443\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0438\u0437 \u043f\u043e\u0434 root.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ssh-copy-id ceph02-test ssh-copy-id ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.ceph.com\/docs\/master\/install\/manual-deployment\/\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435<\/a><\/p>\n<p>  <anchor> ceph-deploy<\/anchor>  <\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 ceph-deploy<\/h2>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c ceph-deploy \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 ceph01-test<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">wget -q -O- 'https:\/\/download.ceph.com\/keys\/release.asc' | apt-key add -<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0440\u0435\u043b\u0438\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u044c. \u041d\u043e \u0442\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f ceph \u0434\u043b\u044f \u041e\u0421 Debian \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043a\u0435\u0442\u044b luminous.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0439 \u0440\u0435\u043b\u0438\u0437 \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u0435\u0440\u043a\u0430\u043b\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<br \/>  <a href=\"https:\/\/mirror.croit.io\/debian-mimic\/dists\/\">https:\/\/mirror.croit.io\/debian-mimic\/dists\/<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 mimic \u043d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043d\u043e\u0434\u0430\u0445<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">apt install curl  apt-transport-https -y curl https:\/\/mirror.croit.io\/keys\/release.gpg &gt; \/usr\/share\/keyrings\/croit-signing-key.gpg echo 'deb [signed-by=\/usr\/share\/keyrings\/croit-signing-key.gpg] https:\/\/mirror.croit.io\/debian-mimic\/ stretch main' &gt; \/etc\/apt\/sources.list.d\/croit-ceph.list apt update apt install ceph-deploy<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0412\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e luminous \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">echo deb https:\/\/download.ceph.com\/debian-luminous\/ $(lsb_release -sc) main | tee \/etc\/apt\/sources.list.d\/ceph.list apt-transport-https apt update apt install ceph-deploy<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c NTP \u043d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043d\u043e\u0434\u0430\u0445.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u0435\u0441\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 ceph<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>We recommend installing NTP on Ceph nodes (especially on Ceph Monitor nodes) to prevent issues arising from clock drift.  <\/p>\n<\/div>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"plaintext\">apt install ntp<\/code><\/pre>\n<p>  <a name=\"ceph-install\"><\/a>  <\/p>\n<h2> \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 ceph<\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432 ceph-deploy<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">mkdir my-cluster cd my-cluster<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0443\u043a\u0430\u0436\u0435\u043c \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy new ceph01-test ceph02-test ceph03-test<\/code><\/pre>\n<p>  <a name=\"ceph-network\"><\/a>  <\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438 <\/h2>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0441\u0435\u0442\u0438 \u0434\u043b\u044f ceph. Ceph \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0432\u0435 \u0441\u0435\u0442\u0438 public network \u0438 cluster network<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jz\/dp\/wz\/jzdpwzxrzpdqr7k9v4u53hmc05s.png\"><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u0445\u0435\u043c\u044b public network \u044d\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0430 cluster network \u044d\u0442\u043e \u0441\u0435\u0442\u044c \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  \u041e\u0447\u0435\u043d\u044c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0442\u044c \u044d\u0442\u0438 \u0434\u0432\u0435 \u0441\u0435\u0442\u0438 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430. \u0422\u0430\u043a\u0436\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438 cluster network \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 10 Gb.<br \/>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u041d\u043e \u044d\u0442\u043e \u0447\u0435\u0440\u0435\u0432\u0430\u0442\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0435\u0442 \u043e\u0431\u044a\u0435\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 OSD, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 OSD (\u0434\u0438\u0441\u043a\u043e\u0432), \u0442\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u0441\u0435\u0442\u044c \u041e\u0427\u0415\u041d\u042c \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0435\u0442. \u0422\u0430\u043a \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0441\u0435\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 ceph.<br \/>  \u041d\u0430 \u043c\u043e\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0438 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0441\u0435\u0442\u0438.<br \/>  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">\/my-cluster# cat ceph.conf [global] fsid = 2e0d92b0-e803-475e-9060-0871b63b6e7f mon_initial_members = ceph01-test, ceph02-test, ceph03-test mon_host = 10.73.88.52,10.73.88.53,10.73.88.54 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0446\u0435\u0444 \u0434\u0435\u043f\u043b\u043e\u0439 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u0430\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b global \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 public network = {public-network\/netmask}. \u041c\u043e\u044f \u0441\u0435\u0442\u044c 10.73.0.0\/16 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">[global] fsid = 2e0d92b0-e803-475e-9060-0871b63b6e7f mon_initial_members = ceph01-test, ceph02-test, ceph03-test mon_host = 10.73.88.52,10.73.88.53,10.73.88.54 public network = 10.73.0.0\/16 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0435\u0442\u044c cluster \u043e\u0442 public, \u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 cluster network = {cluster-network\/netmask}<br \/>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e \u0441\u0435\u0442\u0438 <a href=\"https:\/\/docs.ceph.com\/docs\/master\/rados\/configuration\/network-config-ref\/\">\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/p>\n<p>  <a name=\"ceph-pack\"><\/a>  <\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 ceph<\/h2>\n<p>  <\/p>\n<p>C \u043f\u043e\u043c\u043e\u0449\u044c\u044e ceph-deploy \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u044b ceph \u043d\u0430 \u043d\u0430\u0448\u0438 \u0442\u0440\u0438 \u043d\u043e\u0434\u044b.<br \/>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430 ceph01-test \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044f mimic \u0442\u043e<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy install --release mimic ceph01-test ceph02-test ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044f luminous \u0442\u043e<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy install --release luminous ceph01-test ceph02-test ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043f\u043e\u0434\u043e\u0436\u0434\u0435\u043c \u043f\u043e\u043a\u0430 \u0432\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f.<\/p>\n<p>  <a name=\"ceph-mon\"><\/a>  <\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<br \/>  C ceph01-test \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy mon create-initial<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0434\u0435\u043c\u043e\u043d\u044b, \u0442\u0430\u043a\u0436\u0435 ceph-deploy \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 quorum.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043f\u043e \u043d\u043e\u0434\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy admin ceph01-test ceph02-test ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0435\u0441\u043b\u0438 \u0412\u044b \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0442\u043e \u0441\u0442\u0430\u0442\u0443\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c<br \/>  HEALTH_OK<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">~\/my-cluster# ceph status   cluster:     id:     2e0d92b0-e803-475e-9060-0871b63b6e7f     health: HEALTH_OK    services:     mon: 3 daemons, quorum ceph01-test,ceph02-test,ceph03-test     mgr: no daemons active     osd: 0 osds: 0 up, 0 in    data:     pools:   0 pools, 0 pgs     objects: 0  objects, 0 B     usage:   0 B used, 0 B \/ 0 B avail     pgs:<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c mgr<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy mgr create ceph01-test ceph02-test ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441 <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph -s <\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">mgr: ceph01-test(active), standbys: ceph02-test, ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u043d\u0430 \u0432\u0441\u0435 \u0445\u043e\u0441\u0442\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy admin ceph01-test ceph02-test ceph03-test<\/code><\/pre>\n<p>  <a name=\"ceph-osd\"><\/a>  <\/p>\n<h2>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 OSD<\/h2>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043d\u043e \u0432 \u043d\u0435\u043c \u0435\u0449\u0435 \u043d\u0435\u0442 \u0434\u0438\u0441\u043a\u043e\u0432 (osd \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 ceph) \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>OSD \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 (\u043e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434)<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy osd create --data {device} {ceph-node}<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043c\u043e\u0435\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0443 \u043f\u043e\u0434 osd \u0432\u044b\u0434\u0435\u043b\u0435\u043d disk \/dev\/sdb, \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph-deploy osd create --data \/dev\/sdb ceph01-test ceph-deploy osd create --data \/dev\/sdb ceph02-test ceph-deploy osd create --data \/dev\/sdb ceph03-test<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0447\u0442\u043e \u0432\u0441\u0435 OSD \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph -s<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0432\u043e\u0434<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">  cluster:     id:     2e0d92b0-e803-475e-9060-0871b63b6e7f     health: HEALTH_OK    services:     mon: 3 daemons, quorum ceph01-test,ceph02-test,ceph03-test     mgr: ceph01-test(active)     osd: 3 osds: 3 up, 3 in<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f OSD<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph osd df ID CLASS WEIGHT  REWEIGHT SIZE    USE     AVAIL   %USE  VAR  PGS  0   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.0 GiB 20.05 1.00   0  1   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.0 GiB 20.05 1.00   0  2   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.0 GiB 20.05 1.00   0                     TOTAL  15 GiB 3.0 GiB  12 GiB 20.05<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph osd tree ID CLASS WEIGHT  TYPE NAME            STATUS REWEIGHT PRI-AFF -1       0.01469 root default -3       0.00490     host ceph01-test  0   hdd 0.00490         osd.0            up  1.00000 1.00000 -5       0.00490     host ceph02-test  1   hdd 0.00490         osd.1            up  1.00000 1.00000 -7       0.00490     host ceph03-test  2   hdd 0.00490         osd.2            up  1.00000 1.00000 <\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u041e\u041a, \u0442\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 ceph. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ceph \u0441 kubernetes<\/p>\n<p>  <a name=\"kubernetes\"><\/a>  <\/p>\n<h1> \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 ceph \u043a kubernetes <\/h1>\n<p>  <\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044f \u043d\u0435 \u0441\u043c\u043e\u0433\u0443 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0442\u043e\u043c\u043e\u0432 Kubernetes, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0434\u0438\u043d \u0430\u0431\u0437\u0430\u0446.<br \/>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u043e\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 Kubernetes \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 storage classes, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e storage class \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 provisioner, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u043d\u0435\u043a\u0438\u0439 &#171;\u0434\u0440\u0430\u0439\u0432\u0435\u0440&#187; \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0442\u043e\u043c\u0430\u043c\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 kubernetes \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<br \/>  \u0412 \u0441\u0430\u043c\u043e\u043c Kubernetes \u0442\u0430\u043a \u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 rbd, \u043d\u043e \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 kube-controller-manager \u043d\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 rbd, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0431\u0440\u0430\u0437.<br \/>  \u042f \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0431\u044b \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u043c\u043e\u0433 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u043e\u043c\u0430\u043c\u0438 \u043d\u0430 ceph, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e:<br \/>  \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0421eph:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c pool \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 ceph<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438 \u043a\u043b\u044e\u0447 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0434\u043e \u043f\u0443\u043b\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441eph admin secret<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441eph admin secret<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c secret c \u043a\u043b\u044e\u0447\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430 ceph<\/li>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c ceph rbd provisioner \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437 kube-controller-manager \u043d\u0430 \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 rbd <\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c storage class<\/li>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c ceph-common \u043d\u0430 \u0432\u043e\u0440\u043a\u0435\u0440 \u043d\u043e\u0434\u0430\u0445 kubernetes<\/li>\n<\/ul>\n<p>  <a name=\"ceph-pool\"><\/a>  <\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u043b\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 ceph \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c pool \u0434\u043b\u044f \u0442\u043e\u043c\u043e\u0432 kubernetes<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph osd pool create kube 8 8<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0443\u0442 \u044f \u0441\u0434\u0435\u043b\u0430\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435, \u0446\u0438\u0444\u0440\u044b 8 8 \u0432 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e pg \u0438 pgs. \u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0412\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 ceph. \u0415\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e pg \u0438 pgs, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442 <a href=\"https:\/\/ceph.io\/pgcalc\/\">ceph<\/a><br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c (\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 Nautilus).<\/p>\n<p>  <a name=\"ceph-key\"><\/a>  <\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u043f\u0443\u043b\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0443\u043b\u0430 <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=kube'<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u043d \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430\u043c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f secret kubernetes<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph auth get-key client.kube AQDd5aldka5KJRAAkpWTQYUMQi+5dfGDqSyxkg==<\/code><\/pre>\n<p>  <\/p>\n<h2>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430 \u0430\u0434\u043c\u0438\u043d\u0430<\/h2>\n<p>  <\/p>\n<p>\u0418 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ceph auth get client.admin 2&gt;&amp;1 |grep \"key = \" |awk '{print  $3'} AQAv+Itdx4DwKBAAKVhWRS3+eEPqV3Xrnlg9KA==<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 ceph \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0443 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 kubernetes <\/strong><br \/>  \u042f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 master01-test (10.73.71.25) \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0439 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>  <a name=\"kubernetes-secrets\"><\/a>  <\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 client secret<\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u0442\u043e\u043a\u0435\u043d\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0439 \u0442\u043e\u043a\u0435\u043d)<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">echo AQDd5aldka5KJRAAkpWTQYUMQi+5dfGDqSyxkg== &gt; \/tmp\/key.client<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c secret, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl create secret generic ceph-secret --from-file=\/tmp\/key.client --namespace=kube-system --type=kubernetes.io\/rbd<\/code><\/pre>\n<p>  <\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 admin secret<\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u0441 \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0438\u043c \u0442\u043e\u043a\u0435\u043d\u043e\u043c (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0439 \u0442\u043e\u043a\u0435\u043d)<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">echo AQAv+Itdx4DwKBAAKVhWRS3+eEPqV3Xrnlg9KA== &gt; \/tmp\/key.admin<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c admin secret <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl create secret generic ceph-admin-secret --from-file=\/tmp\/key.admin --namespace=kube-system --type=kubernetes.io\/rbd<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0441\u0435\u043a\u0440\u0435\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438\u0441\u044c<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl get secret -n kube-system | grep ceph ceph-admin-secret                            kubernetes.io\/rbd                     1      8m31s ceph-secret                                      kubernetes.io\/rbd                     1      7m32s<\/code><\/pre>\n<p>  <a name=\"kubernetes-provisioner\"><\/a>  <\/p>\n<h2>\u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u043f\u043b\u043e\u0439 ceph rbd provisioner<\/h2>\n<p>  <\/p>\n<p>\u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0441 github \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 kubernetes-incubator\/external-storage, \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b &#8216;\u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c&#8217; \u043a\u043b\u0430\u0441\u0442\u0435\u0440 kubernetes c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c ceph.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">git clone https:\/\/github.com\/kubernetes-incubator\/external-storage.git cd external-storage\/ceph\/rbd\/deploy\/ NAMESPACE=kube-system sed -r -i \"s\/namespace: [^ ]+\/namespace: $NAMESPACE\/g\" .\/rbac\/clusterrolebinding.yaml .\/rbac\/rolebinding.yaml<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl -n $NAMESPACE apply -f .\/rbac<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0432\u043e\u0434<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">clusterrole.rbac.authorization.k8s.io\/rbd-provisioner created clusterrolebinding.rbac.authorization.k8s.io\/rbd-provisioner created deployment.extensions\/rbd-provisioner created role.rbac.authorization.k8s.io\/rbd-provisioner created rolebinding.rbac.authorization.k8s.io\/rbd-provisioner created serviceaccount\/rbd-provisioner created<\/code><\/pre>\n<p>  <\/p>\n<h2>\u0421\u043f\u043e\u0441\u043e\u0431 \u0432\u0442\u043e\u0440\u043e\u0439: \u0417\u0430\u043c\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0437\u0430 kube-controller-manager<\/h2>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0434\u043d\u0438.<\/p>\n<p>  <a name=\"storage-class\"><\/a>  <\/p>\n<h2> \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 storage class <\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c yaml \u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0448\u0435\u0433\u043e storage class. \u0422\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043d\u0438\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/github.com\/rjeka\/kubernetes-ceph-percona\">\u0432 \u043c\u043e\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <\/a> \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 ceph<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">cat &lt;&lt;EOF &gt;.\/storage-class.yaml kind: StorageClass apiVersion: storage.k8s.io\/v1 metadata:   name: ceph-rbd provisioner: ceph.com\/rbd parameters:   monitors: 10.73.88.52:6789, 10.73.88.53:6789, 10.73.88.54:6789   pool: kube   adminId: admin   adminSecretNamespace: kube-system   adminSecretName: ceph-admin-secret   userId: kube   userSecretNamespace: kube-system   userSecretName: ceph-secret   imageFormat: \"2\"   imageFeatures: layering EOF<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u0435\u0433\u043e \u0432 \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl apply -f storage-class.yaml<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0447\u0442\u043e \u0432\u0441\u0435 \u041e\u041a<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl get sc NAME       PROVISIONER    AGE ceph-rbd   ceph.com\/rbd   7s<\/code><\/pre>\n<p>  <a name=\"test\"><\/a>  <\/p>\n<h2> \u0422\u0435\u0441\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0432\u044f\u0437\u043a\u0438 kubernetes + ceph<\/h2>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 ceph + kubernetes, \u043d\u0430 \u041a\u0410\u0416\u0414\u041e\u0419 \u0432\u043e\u0440\u043a\u043d\u043e\u0434\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 ceph-common.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">apt install curl apt-transport-https -y curl https:\/\/mirror.croit.io\/keys\/release.gpg &gt; \/usr\/share\/keyrings\/croit-signing-key.gpg echo 'deb [signed-by=\/usr\/share\/keyrings\/croit-signing-key.gpg] https:\/\/mirror.croit.io\/debian-mimic\/ stretch main' &gt; \/etc\/apt\/sources.list.d\/croit-ceph.list apt update apt install ceph-common<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c yaml \u0444\u0430\u0439\u043b PersistentVolumeClaim<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">cat &lt;&lt;EOF &gt;.\/claim.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata:   name: claim1 spec:   accessModes:     - ReadWriteOnce   storageClassName: ceph-rbd   resources:     requests:       storage: 1Gi EOF<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u0435\u0433\u043e <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl apply -f claim.yaml<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0447\u0442\u043e PersistentVolumeClaim \u0441\u043e\u0437\u0434\u0430\u043b\u0441\u044f. <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">bectl get pvc NAME     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE claim1   Bound    pvc-d1e47825-289c-4201-acb8-033e62a3fe81   1Gi        RWO            ceph-rbd       44m<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043b\u0441\u044f PersistentVolume.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl get pv NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM            STORAGECLASS   REASON   AGE pvc-d1e47825-289c-4201-acb8-033e62a3fe81   1Gi        RWO            Delete           Bound    default\/claim1   ceph-rbd                37m<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043e\u0434\u0438\u043d \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 pod, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 pvc \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \/mnt. \u041f\u0443\u0441\u043a\u0430\u0439 \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \/mnt\/test.txt c \u0442\u0435\u043a\u0441\u0442\u043e\u043c &#171;Hello World!&#187;<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">cat &lt;&lt;EOF &gt;.\/greate-file-pod.yaml kind: Pod apiVersion: v1 metadata:   name: greate-file-pod spec:   containers:   - name: test-pod     image: gcr.io\/google_containers\/busybox:1.24     command:     - \"\/bin\/sh\"     args:     - \"-c\"     - \"echo Helo world! &gt; \/mnt\/test.txt &amp;&amp; exit 0 || exit 1\"     volumeMounts:     - name: pvc       mountPath: \"\/mnt\"   restartPolicy: \"Never\"   volumes:   - name: pvc     persistentVolumeClaim:       claimName: claim1 EOF<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u043c \u0435\u0433\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u0441\u0432\u043e\u044e \u0437\u0430\u0434\u0430\u0447\u0443<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl apply -f greate-file-pod.yaml kubectl get pods -w<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0436\u0434\u0435\u043c\u0441\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u0430 <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">greate-file-pod   0\/1     Completed   0          16s<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043a \u043d\u0435\u043c\u0443 \u043d\u0430\u0448 \u0442\u043e\u043c \u043d\u043e \u0443\u0436\u0435 \u0432 \/mnt\/test, \u0430 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u043c \u0442\u043e\u043c\u043e\u043c \u0444\u0430\u0439\u043b \u043d\u0430 \u043c\u0435\u0441\u0442\u0435<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">cat &lt;&lt;EOF &gt;.\/test-pod.yaml kind: Pod apiVersion: v1 metadata:   name: test-pod spec:   containers:   - name: test-pod     image: gcr.io\/google_containers\/busybox:1.24     command:     - \"\/bin\/sh\"     args:     - \"-c\"     - \"sleep 600\"     volumeMounts:     - name: pvc       mountPath: \"\/mnt\/test\"   restartPolicy: \"Never\"   volumes:   - name: pvc     persistentVolumeClaim:       claimName: claim1 EOF<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c kubectl get po -w \u0438 \u0434\u043e\u0436\u0434\u0435\u043c\u0441\u044f \u043f\u043e\u043a\u0430 pod \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 running<br \/>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0439\u0434\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0447\u0442\u043e \u0442\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u0438 \u043d\u0430\u0448 \u0444\u0430\u0439\u043b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \/mnt\/test<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl exec test-pod -ti sh cat \/mnt\/test\/test.txt Helo world!<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0442\u043e \u0447\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430. \u0418\u0437\u0432\u0438\u043d\u044f\u044e\u0441\u044c \u0437\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<br \/>  \u041d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u044f \u0433\u043e\u0442\u043e\u0432 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u0438\u043b\u0438 \u0432 \u0441\u043e\u0446\u0441\u0435\u0442\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0443 \u043c\u0435\u043d\u044f \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435.<br \/>  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e ceph \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 S3, \u0438 \u0434\u0430\u043b\u0435\u0435 \u043f\u043e \u043f\u043b\u0430\u043d\u0443 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>  <a name=\"book\"><\/a>  <\/p>\n<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/docs.ceph.com\/docs\/master\/\">\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Ceph<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/313644\/\">\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c Ceph \u0432 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0445<\/a><\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/kubernetes-incubator\/external-storage\/tree\/master\/ceph\/rbd\">kubernetes-incubator\/external-storage<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/rjeka\/kubernetes-ceph-percona\">kubernetes-ceph-percona \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u043e\u0432<\/a><\/li>\n<\/ul>\n<\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d() } } }t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>      <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/465399\/\"> https:\/\/habr.com\/ru\/post\/465399\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/465399\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/a0b\/8ca\/ad7\/a0b8caad7cb449ff8655bf584a68ca8b.png\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/462473\/\">\u0427\u0430\u0441\u0442\u044c 1 \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438. \u0427\u0430\u0441\u0442\u044c 1 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Kubernetes HA \u043d\u0430 bare metal (Debian)<\/a><\/p>\n<p>  <\/p>\n<h2>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0425\u0430\u0431\u0440\u0430!<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"https:\/\/habr.com\/ru\/post\/462473\/\">\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes. \u041d\u043e \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 Kubernetes \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c stateless \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c \u0438\u0445 \u043f\u0440\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430\u0445 \u043f\u043e\u0434\u043e\u0432.<br \/>  \u0414\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0432 Kubernetes \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043c\u0430 (volume). \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 Kubernetes, \u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043e\u0441\u043e\u0431\u043e \u043d\u0435\u0442. \u041d\u0430\u043c \u043b\u0438\u0448\u044c \u043d\u0443\u0436\u043d\u043e \u0443 Google, Amazon \u0438\u043b\u0438 \u0438\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0437\u0430\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u0438, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443\u044f\u0441\u044c <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 <\/a>, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u043c\u0430 \u043a \u043f\u043e\u0434\u0430\u043c.<br \/>  \u041a\u043e\u0433\u0434\u0430 \u0436\u0435 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 bare metal, \u0442\u0443\u0442 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 ceph.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443: <\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 Ceph<\/li>\n<li>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Ceph \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Kubernetes<br \/>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-294991","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/294991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=294991"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/294991\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=294991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=294991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=294991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}