{"id":58212,"date":"2023-01-23T11:30:47","date_gmt":"2023-01-23T02:30:47","guid":{"rendered":"https:\/\/www.creationline.com\/?p=58212"},"modified":"2023-01-19T17:23:45","modified_gmt":"2023-01-19T08:23:45","slug":"msrmirantis-secure-registry-2-9%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e3%82%a4%e3%83%a1%e3%83%bc%e3%82%b8%e3%82%92msr-3-0%e3%81%b8%e3%83%9e%e3%82%a4%e3%82%b0%e3%83%ac%e3%83%bc%e3%82%b7","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212","title":{"rendered":"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis"},"content":{"rendered":"<p><a href=\"\/mirantis\/mirantis-secure-registry\">Mirantis Secure Registry<\/a>\uff08MSR\uff1a\u65e7 Docker Trusted Registry\uff09\u306f\u3001\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u7d1a\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u306a\u30ec\u30b8\u30b9\u30c8\u30ea\u3067\u3001\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092\u5b89\u5168\u306b\u4fdd\u7ba1\u30fb\u5171\u6709\u30fb\u7ba1\u7406\u3067\u304d\u308b\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u3059\u3002<br \/>\n\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u306e\u4fdd\u7ba1\u3060\u3051\u3067\u306a\u304f\u3001\u30a2\u30af\u30bb\u30b9\u5236\u5fa1\u3084\u30a4\u30e1\u30fc\u30b8\u30b9\u30ad\u30e3\u30f3\u3092\u5b9f\u65bd\u3057\u3066\u8106\u5f31\u6027\u30c1\u30a7\u30c3\u30af\u3092\u304a\u3053\u306a\u3048\u308b\u6a5f\u80fd\u304c\u3064\u3044\u3066\u3044\u307e\u3059\u3002\u30a4\u30e1\u30fc\u30b8\u30b9\u30ad\u30e3\u30f3\u306b\u3064\u3044\u3066\u306f<a href=\"\/lab\/57030\"><span style=\"font-weight: 400;\">\u3053\u3061\u3089\u306e\u30d6\u30ed\u30b0<\/span><\/a>\u3067\u7d39\u4ecb\u3057\u3066\u304a\u308a\u307e\u3059\u306e\u3067\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002<br \/>\n\u672c\u7a3f\u3067\u306fMSR2.9\u3092\u304a\u4f7f\u3044\u306e\u30e6\u30fc\u30b6\u304c\u3059\u3050\u306bMSR3.0\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u3042\u308b\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3001\u30e6\u30fc\u30b6\u30fc\u3084\u30aa\u30fc\u30ac\u30cb\u30bc\u30fc\u30b7\u30e7\u30f3\u306a\u3069\u306e\u60c5\u5831\u3092\u307e\u3068\u3081\u3066MSR3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h2>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u30e1\u30ea\u30c3\u30c8\u3068\u306f\uff1f<\/h2>\n<p>MSR2.9\u306fKubernetes\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3042\u308b<a href=\"\/mirantis\">MKE<\/a>(Mirantis Kubernetes Engine)\u306eWorker\u4e0a\u3067\u52d5\u4f5c\u3059\u308b\u305f\u3081\u3001\u5229\u7528\u3059\u308b\u306b\u306fMKE\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5fc5\u9808\u3068\u306a\u308a\u307e\u3059\u3002<br \/>\n\u4e00\u65b9\u3001MSR3.0\u306f<a href=\"https:\/\/docs.mirantis.com\/msr\/3.0\/release-notes\/3-0-0\/enhancements.html#msr-on-kubernetes\"><span style=\"font-weight: 400;\">Kubernetes 1.20\u4ee5\u964d\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><\/a>\u3055\u308c\u3066\u3044\u308c\u3070\u3001MKE\u3060\u3051\u3067\u306a\u304f\u4ed6\u306eKubernetes\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u4e0a\u3067\u52d5\u4f5c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001Kubernetes\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u306b\u4f9d\u5b58\u3057\u306a\u3044\u67d4\u8edf\u306a\u74b0\u5883\u3067\u30ea\u30dd\u30b8\u30c8\u30ea\u7ba1\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>\u52d5\u4f5c\u74b0\u5883<\/h2>\n<p><strong>Source MSR<\/strong>(MSR2.9.9)<br \/>\n\u672c\u7a3f\u3067\u306f\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u5143\u306eMSR\u3092<strong>Source MSR<\/strong>\u3068\u547c\u3073\u307e\u3059\u3002<br \/>\nMKE3.5.5\u306eWorker\u30ce\u30fc\u30c9\u4e0a\u306bMSR\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><strong>Target MSR<\/strong>(MSR3.0.5)<br \/>\n\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u5148\u306eMSR\u3092\u672c\u7a3f\u3067\u306f<strong>Target MSR<\/strong>\u3068\u547c\u3073\u307e\u3059\u3002<br \/>\nKubeadm\u3092\u4f7f\u3044Kubernetes v1.25.4\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057MSR3.0.5\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>\u4f5c\u696d\u6982\u8981<\/h2>\n<p>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u306fMirantis\u793e\u304c\u7528\u610f\u3057\u3066\u3044\u308b<strong>Mirantis Migration Tool(\u4ee5\u4e0bMMT)<\/strong>\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002Target MSR\u3067\u306eMMT\u306fMSR3.0.3\u304b\u3089\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u308c\u3088\u308a\u524d\u306eMSR\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u305b\u3093\u3002<br \/>\nSource MSR\u3068\u3057\u3066\u306fMSR2.9\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u304a\u308a\u3001MSR2.8\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u672a\u5bfe\u5fdc\u3067\u3059\u3002<br \/>\n\u306a\u304a\u3001\u30b7\u30f3\u30b0\u30eb\u30b5\u30a4\u30f3\u30aa\u30f3\u306e\u8a2d\u5b9a\u3068\u81ea\u52d5\u30b9\u30ad\u30e3\u30f3\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u306e\u8a2d\u5b9a\u306f\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u5bfe\u8c61\u5916\u3067\u3059\u3002<\/p>\n<p>\u5168\u4f53\u306e\u4f5c\u696d\u306e\u6d41\u308c\u3067\u3059\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-58269\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/Flow.png\" alt=\"\" width=\"239\" height=\"422\" \/><br \/>\n\u4f5c\u696d\u306f\u5168\u3066CLI\u3067\u304a\u3053\u306a\u3044\u307e\u3059\u3002<br \/>\n\u4e8b\u524d\u6e96\u5099\u3001estimate\u3001extract\u306fSourceMSR\u3067\u304a\u3053\u306a\u3044\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u5fc5\u8981\u306a\u60c5\u5831\u3092\u53ce\u96c6\u3057\u307e\u3059\u3002\u305d\u308c\u3089\u306e\u60c5\u5831\u3092Target MSR\u3078\u79fb\u52d5\u3057\u305f\u3042\u3068\u306btransform\u3001restore\u3067MSR3.0\u306b\u9069\u3057\u305f\u5f62\u5f0f\u306b\u5909\u63db\u3057\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u6700\u5f8c\u306b\u52d5\u4f5c\u78ba\u8a8d\u3092\u5b9f\u65bd\u3057\u3066\u7d42\u4e86\u3067\u3059\u3002<\/p>\n<h2>\u4e8b\u524d\u6e96\u5099<\/h2>\n<p>\u305d\u308c\u3067\u306f\u4f5c\u696d\u306b\u53d6\u308a\u639b\u304b\u3063\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<br \/>\n\u4f5c\u696d\u306b\u306f\u5f53\u7136Target\u3068\u306a\u308bMSR3.0\u306e\u69cb\u7bc9\u304c\u5fc5\u8981\u3067\u3059\u304c\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u3064\u3044\u3066\u306f\u904e\u53bb\u306b\u53d6\u308a\u6271\u3063\u3066\u3044\u308b<a href=\"\/lab\/47938\"><span style=\"font-weight: 400;\">\u3053\u3061\u3089\u306e\u30d6\u30ed\u30b0<\/span><\/a>\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u7701\u7565\u3057\u307e\u3059\u3002<br \/>\n\u4f5c\u696d\u3092\u304a\u3053\u306a\u3046\u306b\u306fSource MSR\u3092\u8aad\u307f\u53d6\u308a\u5c02\u7528\u30e2\u30fc\u30c9\u306b\u3059\u308b\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u4ee5\u4e0b\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\nSource MSR:<\/p>\n<pre>$ curl -u $USER:$TOKEN -X POST \"https:\/\/&lt;msr-url&gt;\/api\/v0\/meta\/settings\" -H \"accept: application\/json\" -H \"content-type: application\/json\" -d \"{ \\\"readOnlyRegistry\\\": true }\" --insecure<\/pre>\n<p>&lt;msr-url&gt;\u306b\u306fSource MSR\u306eURL\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n$USER\u306b\u306fSource MSR\u3078WebUI\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u969b\u306eadmin\u6a29\u9650\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3001$TOKEN\u306fWebUI\u306b\u3066Access Tokens\u30bf\u30d6\u304b\u3089New access token\u3067\u4f5c\u6210\u3057\u305f\u30c8\u30fc\u30af\u30f3\u3092\u74b0\u5883\u5909\u6570\u306b\u4e8b\u524d\u306b\u683c\u7d0d\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\u306e\u30ed\u30b0\u629c\u7c8b<\/p>\n<pre>\r\n<strong>\"readOnlyRegistry\": true<\/strong>,\r\n\"disablePersistentCookies\": false,\r\n\"globalEnforcementPolicy\": {\r\n\"rules\": {},\r\n\"enabled\": false\r\n}<\/pre>\n<p>\"readOnlyRegistry\": true\u3068\u306a\u3063\u3066\u3044\u308c\u3070\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3001\u3064\u307e\u308aSource MSR\u30ea\u30dd\u30b8\u30c8\u30ea\u3078Push\u4e0d\u53ef(Pull\u306f\u53ef\u80fd)\u306e\u72b6\u614b\u306b\u66f4\u65b0\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><strong>estimate<\/strong><br \/>\nSource MSR\u306b\u3066dtr-registry\u306eVOLUME NAME\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre>$ docker volume ls --filter name=dtr-registry\r\nDRIVER VOLUME NAME\r\nlocal <strong>dtr-registry-000000000001<\/strong><\/pre>\n<p>estimate\u306f\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\nSource MSR:<\/p>\n<pre>$ docker run \\\r\n--rm \\\r\n-it \\\r\n-v <strong>&lt;local-migration-directory&gt;<\/strong>:\/migration:Z \\\r\n--mount source=<strong>&lt;dtr-registry-id&gt;<\/strong>,target=\/storage \\\r\nregistry.mirantis.com\/msr\/mmt:<strong>$MMT_VERSION<\/strong> \\\r\nestimate msr  \\\r\n--source-mke-url <strong>&lt;MKE url&gt;<\/strong> \\\r\n--source-username <strong>&lt;MKE admin username&gt;<\/strong> \\\r\n--source-password <strong>&lt;MKE admin password&gt;<\/strong> \\\r\n--source-url <strong>&lt;MSR 2.9 url&gt;<\/strong> \\\r\n--storage-mode <strong>copy<\/strong> \\\r\n--source-insecure-tls \\\r\n\/migration\r\n<\/pre>\n<p>\u30b3\u30de\u30f3\u30c9\u5185\u3067storage-mode\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001storage-mode\u306fcopy\u3068inplace\u306e2\u7a2e\u985e\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002<br \/>\nTarget MSR\u3068Source MSR\u3067\u306f\u5225\u3005\u306b\u30ed\u30fc\u30ab\u30eb\u4e0a\u3067\u30c7\u30fc\u30bf\u3092\u4fdd\u7ba1\u3057\u3066\u3044\u308b\u306e\u3067copy\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u5171\u901a\u306e\u5916\u90e8\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306finplace\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002copy\u3068inplace\u306e\u8aac\u660e\u306b\u3064\u3044\u3066\u306f<a href=\"https:\/\/docs.mirantis.com\/msr\/3.0\/migration-tool\/select-storage-mode.html\"><span style=\"font-weight: 400;\">\u3053\u3061\u3089<\/span><\/a>\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>Source MSR\u306e\u30ce\u30fc\u30c9\u3067\u4efb\u610f\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u4f8b\u3068\u3057\u3066&lt;local-migration-directory&gt;\u306b\u306f\/home\/ubuntu\/temp\/migration\u3092\u5165\u529b\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u3042\u3068\u306e\u624b\u9806\u3067\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u914d\u4e0b\u306b\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u30b3\u30d4\u30fc\u3055\u308c\u307e\u3059\u3002<br \/>\n&lt;dtr-registry-id&gt;\u306b\u306f\u59cb\u3081\u306b\u78ba\u8a8d\u3057\u305fVOLUME NAME\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u3053\u3067\u306fdtr-registry-000000000001\u3068\u306a\u308a\u307e\u3059\u3002<br \/>\n$MMT_VERSION\u306fMMT\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8868\u3059\u3082\u306e\u3067\u201dlatest\u201d\u306b\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n&lt;MKE url&gt;\u306b\u306fhttps:\/\/172.31.5.196\/\u3001&lt;MSR 2.9 url&gt;\u306b\u306fhttps:\/\/172.31.11.170\/\u3092\u3053\u3061\u3089\u306e\u74b0\u5883\u306b\u4f75\u305b\u3066\u5165\u529b\u3057\u3066\u3044\u307e\u3059\u3002&lt;MKE admin username&gt;\u3001&lt;MKE admin password&gt;\u3082\u305d\u308c\u305e\u308c\u306e\u74b0\u5883\u306b\u9069\u3057\u305f\u5024\u3092\u3054\u5165\u529b\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u5b9f\u884c\u6642\u306e\u30ed\u30b0\u629c\u7c8b<\/p>\n<pre>Source Registry: \"https:\/\/172.31.11.170\/\" (Type: \"msr\")\r\nwith authentication data from MKE: \"https:\/\/172.31.5.196\/\"\r\nMode: \"copy\"\r\nRegistry Metadata: 90 MB\r\nImage tags: 6 (1.2 GB)\r\n\r\nExisting MSR storage will be copied.\r\n<\/pre>\n<p>\u3053\u306e\u3088\u3046\u306a\u30ed\u30b0\u304c\u51fa\u308c\u3070estimate\u5b8c\u4e86\u3067\u3059\u3002\u7279\u306b\u30a8\u30e9\u30fc\u304c\u7121\u3051\u308c\u3070\u6b21\u306b\u9032\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><strong>extract<\/strong><br \/>\nestimate\u3068\u540c\u3058\u304f\u5fc5\u8981\u7b87\u6240\u306b\u5024\u3092\u5165\u308c\u3066Source MSR\u306b\u3066extract\u3092\u5b9f\u65bd\u3057\u307e\u3059\u3002<br \/>\nextract\u306b\u3088\u308a\/home\/ubuntu\/temp\/migration\u306b\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u5fc5\u8981\u306a\u60c5\u5831\u304c\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>extract\u5b9f\u884c\u30b3\u30de\u30f3\u30c9<br \/>\nSource MSR:<\/p>\n<pre>docker run \\\r\n--rm \\\r\n-it \\\r\n-v &lt;local-migration-directory&gt;:\/migration:Z \\\r\n--mount source=&lt;dtr-registry-id&gt;,target=\/storage \\\r\nregistry.mirantis.com\/msr\/mmt:$MMT_VERSION \\\r\nextract msr  \\\r\n--source-mke-url &lt;MKE url&gt; \\\r\n--source-username &lt;MKE admin username&gt; \\\r\n--source-password &lt;MKE admin password&gt; \\\r\n--source-url &lt;MSR 2.9 url&gt; \\\r\n--storage-mode copy \\\r\n--source-insecure-tls \\\r\n\/migration\r\n<\/pre>\n<p>\u5b9f\u884c\u6642\u306e\u30ed\u30b0\u629c\u7c8b<\/p>\n<pre>Source Registry: https:\/\/172.31.11.170\/\r\nMode: copy\r\nImage data: 51 blobs (1.2 GB)\r\n<\/pre>\n<p>\/home\/ubuntu\/temp\/migration\u306b\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u7528\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u30b3\u30d4\u30fc\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<pre>$ ls -l \/home\/ubuntu\/temp\/migration\r\n-rw------- 1 root root     6399 Dec 12 04:28 auth-store.tar.gz\r\ndrwxr-xr-x 3 root root     4096 Dec 12 04:28 blobs\r\n-rw-r--r-- 1 root root 26028544 Dec 12 04:28 dtr-metadata-mmt-backup.tar\r\n-rw------- 1 root root     5078 Dec 12 04:29 migration_summary.json\r\n-rw------- 1 root root       77 Dec 12 04:29 stats.json\r\n<\/pre>\n<p><strong>transform<\/strong><br \/>\n\u3053\u3053\u304b\u3089\u306fTarget MSR\u3067\u306e\u4f5c\u696d\u306b\u79fb\u308a\u307e\u3059\u3002<a href=\"https:\/\/docs.mirantis.com\/msr\/3.0\/migration-tool\/troubleshoot-migration\/filesystem-storage-back-ends.html#:~:text=Use%20the%20YAML%20template%20below%20as%20an%20example%20for%20how%20to%20create%20the%20MMT%20Pod%20and%20other%20required%20Kubernetes%20objects%3A\"><span style=\"font-weight: 400;\">\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/span><\/a>\u306b\u3042\u308b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u53c2\u8003\u306b\u3057\u3066MMT\u7528\u306ePod\u3084\u305d\u306e\u4ed6\u5fc5\u8981\u306aKubernetes\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<p>\u4e0b\u8a18\u306f\u5b9f\u969b\u306b\u4f7f\u7528\u3057\u305fyaml\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002\u5404\u30ea\u30bd\u30fc\u30b9\u306e\u540d\u524d\u3092\u4efb\u610f\u306e\u3082\u306e\u306b\u5909\u66f4\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u306e\u30bf\u30b0\u306flatest\u3068\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\nmmt-objects.yaml<\/p>\n<pre>apiVersion: v1\r\nkind: ServiceAccount\r\nmetadata:\r\n  name: <strong>msr-migration-account<\/strong>\r\n---\r\nkind: Role\r\napiVersion: rbac.authorization.k8s.io\/v1\r\nmetadata:\r\n  name: <strong>msr-migration-role<\/strong>\r\nrules:\r\n  # Add\/remove more permissions as needed\r\n  - apiGroups: [\"\", \"apps\", \"rbac.authorization.k8s.io\", \"cert-manager.\r\n    io\", \"acid.zalan.do\"]\r\n    resources: [\"*\"]\r\n    verbs: [\"*\"]\r\n---\r\napiVersion: rbac.authorization.k8s.io\/v1\r\nkind: RoleBinding\r\nmetadata:\r\n  name: <strong>msr-migration-role-binding<\/strong>\r\nsubjects:\r\n  - kind: ServiceAccount\r\n    name: <strong>msr-migration-account<\/strong>\r\nroleRef:\r\n  kind: Role\r\n  name: <strong>msr-migration-role<\/strong>\r\n  apiGroup: rbac.authorization.k8s.io\r\n---\r\napiVersion: v1\r\nkind: Pod\r\nmetadata:\r\n  name: <strong>msr-migration-pod<\/strong>\r\nspec:\r\n  serviceAccountName: <strong>msr-migration-account<\/strong>\r\n  volumes:\r\n    - name: storage\r\n      persistentVolumeClaim:\r\n        claimName: <strong>msr<\/strong>\r\n  containers:\r\n    - name: msr-migration-tool\r\n      image: registry.mirantis.com\/msr\/mmt:<strong>latest<\/strong>\r\n      imagePullPolicy: IfNotPresent\r\n      command: [ \"sh\", \"-c\", \"while true; do sleep 30; done;\" ]\r\n      volumeMounts:\r\n      - name: storage\r\n        mountPath: \/storage\r\n  restartPolicy: Never\r\n<\/pre>\n<p>\u3053\u306eyaml\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u3063\u3066\u5404\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/>\nTarget MSR:<\/p>\n<pre>$ kubectl apply -f mmt-objects.yaml\r\nserviceaccount\/msr-migration-account created\r\nrole.rbac.authorization.k8s.io\/msr-migration-role created\r\nrolebinding.rbac.authorization.k8s.io\/msr-migration-role-binding created\r\npod\/msr-migration-pod created\r\n<\/pre>\n<p>\u6b21\u306bSource MSR\u3067\u53d6\u5f97\u3057\u305f\/home\/ubuntu\/temp\/migration\u914d\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u5168\u3066Target MSR\u306e~\/temp\/migration\u3078\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<br \/>\nSource MSR:<\/p>\n<pre>$ sudo scp -ri [key-file] \/home\/ubuntu\/temp\/migration\/* \\\r\n [target-account]@172.31.5.235:~\/temp\/migration\r\n<\/pre>\n<p>Target MSR\u306e~\/temp\/migration\u306b\u8a2d\u7f6e\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30f3\u30c6\u30ca\u4e0a\u306e\/migration\u3078\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002\u305d\u306e\u3042\u3068\u30d5\u30a1\u30a4\u30eb\u3092MSR3.0\u306b\u9069\u3057\u305f\u5f62\u5f0f\u306b\u3059\u308b\u305f\u3081\u3001\u30b3\u30f3\u30c6\u30ca\u4e0a\u3067MMT\u3092\u4f7f\u7528\u3057\u3066transform\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\nTarget MSR:<\/p>\n<pre>$ kubectl cp ~\/temp\/migration msr-migration-pod:\/migration\r\n\r\n$ kubectl exec --stdin --tty msr-migration-pod -- sh\r\n\/ #\r\n\/ # .\/mmt transform metadata msr  \\\r\n&gt; --storage-mode copy \\\r\n&gt; \/migration\r\n<\/pre>\n<p>\u5b9f\u884c\u6642\u306e\u30ed\u30b0\u629c\u7c8b<\/p>\n<pre>INFO[0000] Finalizing backup directory structure\r\nINFO[0000] Creating tar file\r\nINFO[0000] Cleaning transform operation artifacts from directory: \"\/migration\"\r\n<\/pre>\n<p>\u30a8\u30e9\u30fc\u7121\u304fTransform\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002<\/p>\n<p><strong>restore<\/strong><br \/>\n\u305d\u306e\u307e\u307e\u30b3\u30f3\u30c6\u30ca\u4e0a\u3067mmt\u3092\u4f7f\u3063\u3066restore\u3092\u5b9f\u65bd\u3057\u307e\u3059\u3002<\/p>\n<pre>\/ # .\/mmt restore msr \\\r\n&gt; --fullname msr \\\r\n&gt; --storage-mode copy \\\r\n&gt; \/migration\r\n<\/pre>\n<p>\u5b9f\u884c\u6642\u306e\u30ed\u30b0\u629c\u7c8b<\/p>\n<pre>INFO[0010] Restoring metadata from: \"\/migration\/msr-backup-v3.0.5-mmt.tar\"\r\n{\"level\":\"info\",\"msg\":\"Append data option set, will not empty existing tables\",\"time\":\"2022-12-12T04:36:10Z\"}\r\n{\"level\":\"info\",\"msg\":\"Restoring from backup version \\\"3.0.5-mmt\\\"\",\"time\":\"2022-12-12T04:36:10Z\"}\r\n{\"level\":\"info\",\"msg\":\"Restoring data\",\"time\":\"2022-12-12T04:36:10Z\"}\r\nINFO[0013] Successfully restored metadata from: \"\/migration\/msr-backup-v3.0.5-mmt.tar\"\r\n<\/pre>\n<p>\u4ee5\u4e0a\u3067\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306f\u7d42\u4e86\u3067\u3059\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u6b8b\u4f5c\u696d\u3068\u3057\u3066MMT\u7528\u306b\u3064\u304f\u3063\u305f\u5404\u30ea\u30bd\u30fc\u30b9\u3092\u6d88\u3057\u307e\u3057\u3087\u3046\u3002<br \/>\nTarget MSR:<\/p>\n<pre>$ kubectl delete -f mmt-objects.yaml\r\nserviceaccount \"msr-migration-account\" deleted\r\nrole.rbac.authorization.k8s.io \"msr-migration-role\" deleted\r\nrolebinding.rbac.authorization.k8s.io \"msr-migration-role-binding\" deleted\r\npod \"msr-migration-pod\" deleted\r\n<\/pre>\n<h2>\u52d5\u4f5c\u78ba\u8a8d<\/h2>\n<p>Target MSR\u306eWebUI\u3078\u30a2\u30af\u30bb\u30b9\u3057\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a4\u30e1\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u304b\u3001\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u30e6\u30fc\u30b6\u3084\u30aa\u30fc\u30ac\u30cb\u30bc\u30fc\u30b7\u30e7\u30f3\u304c\u6b63\u3057\u304f\u5b58\u5728\u3059\u308b\u304b\u306a\u3069\u78ba\u8a8d\u3057\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002<br \/>\n\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3055\u308c\u305f\u30a4\u30e1\u30fc\u30b8\u3092\u7528\u3044\u3066\u30b3\u30f3\u30c6\u30ca\u304c\u8d77\u52d5\u3059\u308b\u304b\u307e\u3067\u78ba\u8a8d\u3057\u3066\u304a\u3051\u3070\u66f4\u306b\u5b89\u5fc3\u3067\u3059\u3002<br \/>\nRepository<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/RepositoryPNG.png\" alt=\"\" width=\"1407\" height=\"690\" class=\"aligncenter size-full wp-image-58297\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/RepositoryPNG.png 1407w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/RepositoryPNG-360x177.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/RepositoryPNG-1024x502.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/RepositoryPNG-768x377.png 768w\" sizes=\"auto, (max-width: 1407px) 100vw, 1407px\" \/><br \/>\nOrganizations<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/Organization.png\" alt=\"\" width=\"1416\" height=\"691\" class=\"aligncenter size-full wp-image-58298\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/Organization.png 1416w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/Organization-360x176.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/Organization-1024x500.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/Organization-768x375.png 768w\" sizes=\"auto, (max-width: 1416px) 100vw, 1416px\" \/><br \/>\nTarget MSR\u3088\u308aPull&Run<\/p>\n<pre>\r\n$ docker run 172.31.5.235:30357\/dos\/hello-world:1.0\r\nUnable to find image '172.31.5.235:30357\/dos\/hello-world:1.0' locally\r\n1.0: Pulling from dos\/hello-world\r\n2db29710123e: Already exists\r\nDigest: sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4\r\nStatus: Downloaded newer image for 172.31.5.235:30357\/dos\/hello-world:1.0\r\n\r\nHello from Docker!\r\nThis message shows that your installation appears to be working correctly.\r\n\r\nTo generate this message, Docker took the following steps:\r\n 1. The Docker client contacted the Docker daemon.\r\n 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\r\n    (amd64)\r\n 3. The Docker daemon created a new container from that image which runs the\r\n    executable that produces the output you are currently reading.\r\n 4. The Docker daemon streamed that output to the Docker client, which sent it\r\n    to your terminal.\r\n\r\nTo try something more ambitious, you can run an Ubuntu container with:\r\n $ docker run -it ubuntu bash\r\n\r\nShare images, automate workflows, and more with a free Docker ID:\r\n https:\/\/hub.docker.com\/\r\n\r\nFor more examples and ideas, visit:\r\n https:\/\/docs.docker.com\/get-started\/\r\n\r\n<\/pre>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>Mirantis\u793e\u306b\u3088\u308aMMT\u304c\u4f5c\u6210\u3055\u308c\u305f\u3053\u3068\u3067\u3001MSR2.9\u306e\u74b0\u5883\u306b\u3042\u308b\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u306f\u6570\u56de\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3060\u3051\u3067MSR3.0\u306e\u74b0\u5883\u306b\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<br \/>\nMSR2.9\u3092\u3054\u5229\u7528\u306e\u304a\u5ba2\u69d8\u304c\u3001Kubernetes\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u306b\u4f9d\u5b58\u3057\u306a\u3044\u74b0\u5883\u3067\u5229\u7528\u3067\u304d\u308bMSR3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u624b\u52a9\u3051\u306b\u306a\u3063\u3066\u304f\u308c\u308c\u3070\u5e78\u3044\u3067\u3059\u3002<br \/>\n\u88fd\u54c1\u306b\u95a2\u3059\u308b\u8cea\u554f\u3084\u4fa1\u683c\u3001\u30e9\u30a4\u30bb\u30f3\u30b9\u4f53\u7cfb\u306a\u3069\u306b\u3064\u304d\u307e\u3057\u3066\u306f<a href=\"\/contact\"><span style=\"font-weight: 400;\">\u3053\u3061\u3089<\/span><\/a>\u304b\u3089\u304a\u554f\u3044\u5408\u308f\u305b\u9858\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted Registry\uff09\u306f\u3001\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u7d1a\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u306a\u30ec\u30b8\u30b9\u30c8\u30ea\u3067\u3001\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092\u5b89\u5168\u306b\u4fdd\u7ba1\u30fb\u5171\u6709\u30fb\u7ba1\u7406\u3067\u304d\u308b\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7 [&#8230;]<\/p>\n","protected":false},"author":90,"featured_media":58275,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[540],"tags":[154,68,410],"class_list":["post-58212","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mirantis","tag-container","tag-devops","tag-410"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"Mirantis |Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"Mirantis |Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-23T02:30:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/registry.png\" \/>\n\t<meta property=\"og:image:width\" content=\"645\" \/>\n\t<meta property=\"og:image:height\" content=\"416\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"a-ikeda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"a-ikeda\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212\"},\"author\":{\"name\":\"a-ikeda\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/75fd502009cdf39307d75be2c0234fae\"},\"headline\":\"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis\",\"datePublished\":\"2023-01-23T02:30:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212\"},\"wordCount\":241,\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/registry.png\",\"keywords\":[\"container\",\"DevOps\",\"\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\"],\"articleSection\":[\"Mirantis\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212\",\"name\":\"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/registry.png\",\"datePublished\":\"2023-01-23T02:30:47+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/75fd502009cdf39307d75be2c0234fae\"},\"description\":\"Mirantis |Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#primaryimage\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/registry.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/registry.png\",\"width\":645,\"height\":416},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\\\/58212#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Mirantis\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/mirantis\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/75fd502009cdf39307d75be2c0234fae\",\"name\":\"a-ikeda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/ikeda-back-230x230.jpg\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/ikeda-back-230x230.jpg\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/ikeda-back-230x230.jpg\",\"caption\":\"a-ikeda\"},\"description\":\"\u5c06\u6765\u306f\u3044\u308d\u3044\u308d\u306a\u90fd\u5e02\u306b\u4f4f\u3093\u3067\u307f\u305f\u3044\u30ea\u30e2\u30fc\u30c8\u597d\u304d\u306a\u30a8\u30f3\u30b8\u30cb\u30a2\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/a-ikeda\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"Mirantis |Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212","og_locale":"ja_JP","og_type":"article","og_title":"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"Mirantis |Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted","og_url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2023-01-23T02:30:47+00:00","og_image":[{"width":645,"height":416,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/registry.png","type":"image\/png"}],"author":"a-ikeda","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"a-ikeda","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"5\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212"},"author":{"name":"a-ikeda","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/75fd502009cdf39307d75be2c0234fae"},"headline":"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis","datePublished":"2023-01-23T02:30:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212"},"wordCount":241,"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/registry.png","keywords":["container","DevOps","\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8"],"articleSection":["Mirantis"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212","url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212","name":"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#primaryimage"},"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/registry.png","datePublished":"2023-01-23T02:30:47+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/75fd502009cdf39307d75be2c0234fae"},"description":"Mirantis |Mirantis Secure Registry\uff08MSR\uff1a\u65e7 Docker Trusted","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#primaryimage","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/registry.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/01\/registry.png","width":645,"height":416},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis\/58212#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative"},{"@type":"ListItem","position":3,"name":"Mirantis","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/mirantis"},{"@type":"ListItem","position":4,"name":"MSR(Mirantis Secure Registry) 2.9\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092MSR 3.0\u3078\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u307f\u3088\u3046 #msr #k8s #kubernetes #mirantis"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/75fd502009cdf39307d75be2c0234fae","name":"a-ikeda","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/ikeda-back-230x230.jpg","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/ikeda-back-230x230.jpg","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/02\/ikeda-back-230x230.jpg","caption":"a-ikeda"},"description":"\u5c06\u6765\u306f\u3044\u308d\u3044\u308d\u306a\u90fd\u5e02\u306b\u4f4f\u3093\u3067\u307f\u305f\u3044\u30ea\u30e2\u30fc\u30c8\u597d\u304d\u306a\u30a8\u30f3\u30b8\u30cb\u30a2","url":"https:\/\/www.creationline.com\/tech-blog\/author\/a-ikeda"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/58212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=58212"}],"version-history":[{"count":63,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/58212\/revisions"}],"predecessor-version":[{"id":58343,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/58212\/revisions\/58343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media\/58275"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=58212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=58212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=58212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}