{"id":3603,"date":"2018-07-16T14:26:17","date_gmt":"2018-07-16T06:26:17","guid":{"rendered":"http:\/\/switch.linesno.com\/?p=3603"},"modified":"2018-07-16T14:26:17","modified_gmt":"2018-07-16T06:26:17","slug":"k8s%e9%95%9c%e5%83%8f%ef%bc%9a%e5%ae%89%e8%a3%85kubernetes%ef%bc%8c%e8%ae%bf%e9%97%ae%e4%b8%8d%e4%ba%86gcr-io%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f","status":"publish","type":"post","link":"http:\/\/switch.linesno.com\/?p=3603","title":{"rendered":"k8s\u955c\u50cf\uff1a\u5b89\u88c5kubernetes\uff0c\u8bbf\u95ee\u4e0d\u4e86gcr.io\u600e\u4e48\u529e\uff1f"},"content":{"rendered":"<p>\u4e4b\u524d\u5728\u5b89\u88c5k8s\u7684\u65f6\u5019\uff0c\u6211\u4eec\u63d0\u5230\u4e86\u4f9d\u8d56\u7684gcr.io\/google_containers\u91cc\u7684\u955c\u50cf\u56e0\u4e3aGFW\u7684\u539f\u56e0\u53d6\u4e0d\u5230\uff0c\u4f46\u662f\u6682\u65f6\u6ca1\u6709gcr.io\u7684\u56fd\u5185\u955c\u50cf\uff0c\u600e\u4e48\u529e\u5462\uff1f<\/p>\n<p>\u65b9\u6cd51\uff1a\u5982\u679c\u6709aws\u4e0a\u7684EC2\u865a\u62df\u673a\uff0c\u8fdc\u7a0b\u5230\u865a\u62df\u673a\u4e0adocker pull gcr.io\/google_containers\/xxx\uff0c\u7136\u540etag\u4e3adocker hub\uff08\u4e5f\u5c31\u662f\u5220\u6389gcr.io\/google_containers\/\u524d\u7f00\uff09\uff0c\u6700\u540e\u518ddocker push \u5230docker hub\u4e0a\u81ea\u5df1\u7684namespace\u4e0b\u3002<\/p>\n<p>\u65b9\u6cd52\uff1a\u5982\u679c\u6ca1\u6709aws\u865a\u62df\u673a\uff0c\u53ef\u4ee5\u53bbdocker hub\u4e0a\u53bb<del>\u6361\u5783\u573e<\/del>\u6dd8\u5b9d\uff0c\u627e\u5230\u522b\u4ebapush\u4e0a\u53bb\u7684\u955c\u50cf\uff0c\u53d6\u4e0b\u6765\u6253tag\u3002<\/p>\n<p>\u65b9\u6cd52\u66f4\u53ef\u884c\uff0c\u4f46\u53d7\u5236\u4e8e\u4eba\u6bd5\u7adf\u662f\u4e0d\u723d\u7684\uff0c\u6bd4\u5982kubernetes 1.6.0\u53d1\u5e03\u4e86\uff0c\u8fd8\u5f97\u53bb\u7b49\u7740\u3002\u6709\u6ca1\u6709\u66f4\u597d\u7684\u529e\u6cd5\u5462\uff1f\u6211\u4ece\u540c\u4e8bfenghan\u90a3\u91cc\u5b66\u5230\u4e86\u4e00\u4e2a\u529e\u6cd5\u3002<\/p>\n<p>docker hub\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5f88\u68d2\u7684\u529f\u80fd\uff0cAutomated Build\u3002<\/p>\n<p>\u7b80\u5355\u6765\u8bf4\u5c31\u662f\uff0c\u4f60\u53ef\u4ee5\u628a\u4f60\u60f3\u8981build\u7684Docker Image\u7684Dockerfile\u6587\u4ef6\u653e\u5230github\u4e0a\uff0c\u7136\u540egithub\u4e0a\u5f00\u542f\u5bf9docker hub\u7684\u6388\u6743\uff08\u8bfb\u6743\u9650\u5c31\u53ef\u4ee5\u4e86\uff09\uff0c\u4e4b\u540e\u5c31\u53ef\u4ee5\u5728docker hub\u4e0a\u6839\u636e\u8fd9\u4e2aDockerfile\u6765\u81ea\u52a8\u7f16\u8bd1\u4e86\u3002\u6362\u53e5\u8bdd\u8bf4\u5c31\u662f\uff0cDocker hub\u4e3a\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2abuild\u7684\u73af\u5883\uff0c\u4f60\u4e0d\u9700\u8981\u672c\u5730build\u518dpush\u4e86\u3002<\/p>\n<p>\u8fd9\u6837\uff0c\u6211\u53ef\u4ee5\u5728Github\u4e0a\u7f16\u5199\u4e00\u4e2a\u7b80\u5355\u7684\u53ea\u662fFROM gcr.io\/google_containers\/xxx\u7684Dockerfile\uff0c\u7136\u540e\u8ba9docker hub\u6765build Github\u4e0a\u7684Dockerfile\uff0c\u4ed6\u4eec\u90fd\u5728\u5899\u5916\uff0cbuild\u81ea\u7136\u6ca1\u6709\u95ee\u9898\uff1b\u7136\u540e\u6211\u518d\u901a\u8fc7docker hub\u52a0\u901f\u5668\u53d6\u4e0b\u6765\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u4fdd\u8bc1\u662f\u5b98\u65b9\u53d1\u5e03\u7684\u4e86\uff0c\u901f\u5ea6\u8d28\u91cf\u90fd\u53ef\u9760\u3002<\/p>\n<p>\u8be6\u7ec6\u8bf4\u660e\uff0c\u8bf7\u53c2\u89c1<a href=\"https:\/\/docs.docker.com\/docker-hub\/builds\/\">\u5b98\u65b9\u6587\u6863<\/a>\u3002\u4e0b\u9762\u7b80\u5355\u8bb0\u5f55\u4e0b\u8fc7\u7a0b\u3002<\/p>\n<h3 id=\"github\u5f00\u542f\u5bf9docker-hub\u7684\u8bfb\u6388\u6743\">github\u5f00\u542f\u5bf9docker hub\u7684\u8bfb\u6388\u6743<\/h3>\n<p>\u7565\u3002<\/p>\n<h3 id=\"dockerfile\u4e0agithub\">Dockerfile\u4e0agithub<\/h3>\n<p>github\u4e0a\u65b0\u5efa\u4e00\u4e2a\u5de5\u7a0b\uff0c\u6bd4\u5982\u6211\u7684<a href=\"https:\/\/github.com\/silenceshell\/Dockerfile4k8s\">Dockerfile4k8s<\/a>\uff0cclone\u5230\u672c\u5730\u3002<\/p>\n<p>\u7136\u540e\u5728\u5de5\u7a0b\u4e2d\u65b0\u589e\uff1a\u00a0<code class=\"highlighter-rouge\">.\/etcd-amd64\/Dockerfile<\/code>\uff0cDockerfile\u5185\u5bb9\u4e3a\uff1a<\/p>\n<div class=\"highlighter-rouge\">\n<pre class=\"highlight\"><code class=\"hljs nginx\"><span class=\"hljs-title\">FROM<\/span> gcr.io\/google_containers\/etcd-amd64:<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">5<\/span>\r\nMAINTAINER silenceshell &lt;silenceshell<span class=\"hljs-variable\">@datastart<\/span>.cn&gt;\r\n<\/code><\/pre>\n<\/div>\n<p>git add\/commit\/push\u5230github\u3002<\/p>\n<p>\u60f3\u77e5\u9053google_containers\u91cc\u6709\u54ea\u4e9b\u955c\u50cf\uff0c\u53ef\u4ee5\u67e5\u8be2<a href=\"https:\/\/console.cloud.google.com\/gcr\/images\/google-containers\/GLOBAL?project=google-containers\">\u8fd9\u91cc<\/a>\u3002<\/p>\n<h3 id=\"docker-hub\u4e0a\u521b\u5efaautomated-build\">Docker Hub\u4e0a\u521b\u5efaAutomated build<\/h3>\n<p>\u5230docker hub\u4e0a\uff0c<code class=\"highlighter-rouge\">Create -&gt; Create Automated Build<\/code>\uff0c\u65b0\u589e\u4e00\u4e2aGithub\u7c7b\u578b\u7684\u81ea\u52a8\u7f16\u8bd1\uff0c\u9009\u62e9Dockerfile4k8s\u9879\u76ee\uff1b\u4fee\u6539Repository\u7684Name\u4e3aetcd-amd64\uff0c\u7b80\u5355\u586b\u4e0b\u63cf\u8ff0\uff0c\u8fd9\u6837\u5c31\u521b\u5efa\u4e86\u4e00\u4e2aAutomated Build\u3002<\/p>\n<p>\u8fdb\u5230Repository etcd-amd64\uff0cBuild Setting\u4e2d\u586b\u5199Dockerfile Location\u4e3a<code class=\"highlighter-rouge\">etcd-amd64<\/code>\uff0c\u4fee\u6539Docker Tag Name\u4e3a2.2.5\uff0cSave Change and Trigger\uff1b\u7136\u540e\u70b9Build Details\uff0c\u53ef\u4ee5\u770b\u5230build\u7684\u8fc7\u7a0b\uff0c\u72b6\u6001\u5207\u4e3aSuccess\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<h3 id=\"\u53d6\u5230\u672c\u5730\u5e76push\u5230private-registry\">\u53d6\u5230\u672c\u5730\u5e76push\u5230private Registry<\/h3>\n<p>\u6211\u4eec\u5728\u672c\u5730\u7528Harbor\u642d\u4e86\u4e00\u4e2aPrivate Registry\uff0c\u6240\u4ee5\u53ef\u4ee5\u7ed9image\u6253tag\u5e76push\u5230\u81ea\u5df1\u7684Registry\u3002\u987a\u4fbf\u63a8\u8350\u4e00\u4e0bHarbor\uff0c\u5f88\u4e0d\u9519\uff0cvmware\u51fa\u54c1\uff0c\u5fc5\u5c5e\u7cbe\u54c1\u3002<\/p>\n<div class=\"highlighter-rouge\">\n<pre class=\"highlight\"><code class=\"hljs nginx\"><span class=\"hljs-title\">docker<\/span> pull silenceshell\/etcd-amd64:<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">5<\/span>\r\ndocker tag silenceshell\/etcd-amd64:<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">5<\/span> {<span class=\"hljs-title\">your<\/span> domain}\/{<span class=\"hljs-title\">your<\/span> namespace}\/etcd-amd64:<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">5<\/span>\r\ndocker push {<span class=\"hljs-title\">your<\/span> domain}\/{<span class=\"hljs-title\">your<\/span> namespace}\/etcd-amd64:<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">2<\/span>.<span class=\"hljs-number\">5<\/span>\r\n<\/code><\/pre>\n<\/div>\n<p>\u6700\u540e\u5728k8s\u7528\u7684\u65f6\u5019\uff0c\u522b\u5fd8\u4e86tag\u4e3agcr.io\/google_containers\/etcd-amd64:2.2.5\u3002<\/p>\n<p>btw\uff0c\u5982\u679c\u4f60\u7528\u7684\u662fkubeadm 1.6.0\u6b63\u5f0f\u7248\u672c(not alpha)\uff0c\u90a3\u4e48\u606d\u559c\uff0c\u65b0\u7248\u672c\u652f\u6301\u81ea\u5b9a\u4e49registry\u4e86\uff0c\u53ef\u4ee5\u4e0d\u7528\u518d\u81ea\u5df1\u53bbtag\u4e86\u3002<\/p>\n<h3 id=\"\u8865\">\u8865<\/h3>\n<p>\u53d1\u73b0<a href=\"https:\/\/anjia0532.github.io\/2017\/11\/15\/gcr-io-image-mirror\/\">\u5b89\u5bb6\uff1aGoogle Container Registry(gcr.io) \u4e2d\u56fd\u53ef\u7528\u955c\u50cf(\u957f\u671f\u7ef4\u62a4)<\/a>\u505a\u7684\u975e\u5e38\u597d\u4e86\uff0c\u63a8\u8350\u5927\u5bb6\u76f4\u63a5\u7528anjia0532\uff0c\u975e\u5e38\u65b9\u4fbf\uff0c\u66f4\u65b0\u4e5f\u6bd4\u8f83\u53ca\u65f6\u3002\u3002<\/p>\n<h4 id=\"\u5982\u4f55\u4f7f\u7528\">\u5982\u4f55\u4f7f\u7528<\/h4>\n<p>\u5c06 gcr.io\/google-containers \u66ff\u6362\u4e3a anjia0532 \u5373\u53ef.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e4b\u524d\u5728\u5b89\u88c5k8s\u7684\u65f6\u5019\uff0c\u6211\u4eec\u63d0\u5230\u4e86\u4f9d\u8d56\u7684gcr.io\/google_containers\u91cc\u7684\u955c\u50cf\u56e0\u4e3aGFW\u7684\u539f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-3603","post","type-post","status-publish","format-standard","hentry","category-day"],"_links":{"self":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/3603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3603"}],"version-history":[{"count":1,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/3603\/revisions"}],"predecessor-version":[{"id":3604,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/3603\/revisions\/3604"}],"wp:attachment":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3603"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}