{"id":1259,"date":"2020-05-20T17:31:26","date_gmt":"2020-05-20T09:31:26","guid":{"rendered":"http:\/\/39.97.231.10\/?p=1259"},"modified":"2020-05-20T17:31:26","modified_gmt":"2020-05-20T09:31:26","slug":"kubernetes%e9%9b%86%e7%be%a4%e5%ae%89%e8%a3%85%e9%83%a8%e7%bd%b2","status":"publish","type":"post","link":"http:\/\/www.weijing.co\/?p=1259","title":{"rendered":"kubernetes\u96c6\u7fa4\u5b89\u88c5\u90e8\u7f72"},"content":{"rendered":"<h2 style=\\\"padding-left: 40px;\\\">Kubernetes\u4ecb\u7ecd<\/h2>\n<p style=\\\"padding-left: 40px;\\\">Kubernetes\uff08\u7b80\u79f0k8s\uff09\u662fGoogle\u57282014\u5e746\u6708\u5f00\u6e90\u7684\u4e00\u4e2a\u5bb9\u5668\u96c6\u7fa4\u7ba1\u7406\u7cfb\u7edf\uff0c\u4f7f\u7528Go\u8bed\u8a00\u5f00\u53d1\uff0c\u7528\u4e8e\u7ba1\u7406\u4e91\u5e73\u53f0\u4e2d\u591a\u4e2a\u4e3b\u673a\u4e0a\u7684\u5bb9\u5668\u5316\u7684\u5e94\u7528\uff0cKubernetes\u7684\u76ee\u6807\u662f\u8ba9\u90e8\u7f72\u5bb9\u5668\u5316\u7684\u5e94\u7528\u7b80\u5355\u5e76\u4e14\u9ad8\u6548,Kubernetes\u63d0\u4f9b\u4e86\u8d44\u6e90\u8c03\u5ea6\u3001\u90e8\u7f72\u7ba1\u7406\u3001\u670d\u52a1\u53d1\u73b0\u3001\u6269\u5bb9\u7f29\u5bb9\u3001\u76d1\u63a7\uff0c\u7ef4\u62a4\u7b49\u4e00\u6574\u5957\u529f\u80fd\u3002\n<\/p>\n<h2 style=\\\"padding-left: 40px;\\\">k8s\u96c6\u7fa4\u5b89\u88c5<\/h2>\n<h4 style=\\\"padding-left: 40px;\\\">Master\u548cNode\u90fd\u9700\u8981\u64cd\u4f5c<\/h4>\n<ul>\n<li><strong>\u5173\u95ed\u9632\u706b\u5899<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>systemctl stop firewalld\nsystemctl disable firewalld<\/pre>\n<\/div>\n<ul>\n<li><strong>\u5173\u95edselinux<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>sed -i \\'s\/SELINUX=enforcing\/SELINUX=disabled\/\\' \/etc\/selinux\/config\nsetenforce 0<\/pre>\n<\/div>\n<ul>\n<li><strong>\u4fee\u6539\u6865\u63a5\u7684ipv4\u6d41\u91cf\u4f20\u9012\u5230iptables\u7684\u94fe<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre class=\\\"line-numbers language-bash\\\"><code class=\\\"language-bash hljs\\\"><span class=\\\"token function\\\">cat<\/span> <span class=\\\"token operator\\\">&lt;&lt;<\/span> EOF <span class=\\\"token operator\\\">&gt;<\/span> \/etc\/sysctl.conf\nnet.ipv4.ip_forward<span class=\\\"token operator\\\">=<\/span>1\nnet.bridge.bridge-nf-call-iptables<span class=\\\"token operator\\\">=<\/span>1\nnet.ipv4.neigh.default.gc_thresh1<span class=\\\"token operator\\\">=<\/span>4096\nnet.ipv4.neigh.default.gc_thresh2<span class=\\\"token operator\\\">=<\/span>6144\nnet.ipv4.neigh.default.gc_thresh3<span class=\\\"token operator\\\">=<\/span>8192\nvm.swappiness<span class=\\\"token operator\\\">=<\/span>0\nEOF\nsysctl -p<\/code><\/pre>\n<\/div>\n<ul>\n<li><strong>\u5173\u95edswap\u5206\u533a<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>#\u4e34\u65f6\u5173\u95ed\nswapoff -a\n#\u6c38\u4e45\u5173\u95ed\uff0c\u6ce8\u91ca\u6389\/etc\/fstab\u91cc\u9762swap\u7684\u6302\u8f7d<\/pre>\n<\/div>\n<ul>\n<li><strong>\u4fee\u6539\u5b8c\u4ee5\u4e0a\u914d\u7f6e\uff0c\u91cd\u542f\u7cfb\u7edf<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<ul>\n<li><strong>\u5b89\u88c5docker<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>yum install -y yum-utils device-mapper-persistent-data lvm2\nyum-config-manager --add-repo http:\/\/mirrors.aliyun.com\/docker-ce\/linux\/centos\/docker-ce.repo\nyum install docker-ce-18.09.9 -y\nsystemctl start docker<\/pre>\n<\/div>\n<ul>\n<li><strong>\u914d\u7f6e\u955c\u50cf\u52a0\u901f<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>cat &lt;&lt; EOF &gt; \/etc\/docker\/daemon.json\n{\n\\\"registry-mirrors\\\": [ \\\"https:\/\/8wcr35gm.mirror.aliyuncs.com\\\"]\n}\nEOF<\/pre>\n<\/div>\n<ul>\n<li><strong>\u542f\u52a8docker\u3001\u914d\u7f6e\u5f00\u673a\u542f\u52a8<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre class=\\\"line-numbers language-bash\\\"><code class=\\\"language-bash hljs\\\">systemctl restart docker\nsystemctl <span class=\\\"token function\\\"><span class=\\\"hljs-built_in\\\">enable<\/span><\/span> docker<\/code><\/pre>\n<div>\n<ul>\n<li><strong>\u914d\u7f6ekubernetes\u963f\u91cc\u4e91yum\u6e90<\/strong><\/li>\n<\/ul>\n<div>\n<pre>cat &lt;&lt;EOF &gt; \/etc\/yum.repos.d\/kubernetes.repo\n[kubernetes]\nname=Kubernetes\nbaseurl=https:\/\/mirrors.aliyun.com\/kubernetes\/yum\/repos\/kubernetes-el7-x86_64\/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https:\/\/mirrors.aliyun.com\/kubernetes\/yum\/doc\/yum-key.gpg https:\/\/mirrors.aliyun.com\/kubernetes\/yum\/doc\/rpm-package-key.gpg\nEOF<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li><strong>\u4e0b\u8f7dkubernetes\u955c\u50cf<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>#server\u8282\u70b9\n#\u62c9\u53d6\u955c\u50cf\ndocker pull registry.aliyuncs.com\/google_containers\/kube-apiserver-amd64:v1.10.0\ndocker pull registry.aliyuncs.com\/google_containers\/kube-scheduler-amd64:v1.10.0\ndocker pull registry.aliyuncs.com\/google_containers\/kube-controller-manager-amd64:v1.10.0\ndocker pull registry.aliyuncs.com\/google_containers\/kube-proxy-amd64:v1.10.0\ndocker pull registry.aliyuncs.com\/google_containers\/k8s-dns-kube-dns-amd64:1.14.8\ndocker pull registry.aliyuncs.com\/google_containers\/k8s-dns-dnsmasq-nanny-amd64:1.14.8\ndocker pull registry.aliyuncs.com\/google_containers\/k8s-dns-sidecar-amd64:1.14.8\ndocker pull registry.aliyuncs.com\/google_containers\/etcd-amd64:3.1.12\ndocker pull registry.aliyuncs.com\/google_containers\/pause-amd64:3.1\ndocker pull dockerofwj\/flannel\n#\u4fee\u6539\u955c\u50cf\u540d\u79f0\uff0c\u4e0ek8s\u539f\u670d\u52a1\u9700\u6c42\u955c\u50cf\u4fdd\u6301\u4e00\u81f4\ndocker tag registry.aliyuncs.com\/google_containers\/kube-apiserver-amd64:v1.10.0 k8s.gcr.io\/kube-apiserver-amd64:v1.10.0\ndocker tag registry.aliyuncs.com\/google_containers\/kube-scheduler-amd64:v1.10.0 k8s.gcr.io\/kube-scheduler-amd64:v1.10.0\ndocker tag registry.aliyuncs.com\/google_containers\/kube-controller-manager-amd64:v1.10.0 k8s.gcr.io\/kube-controller-manager-amd64:v1.10.0\ndocker tag registry.aliyuncs.com\/google_containers\/kube-proxy-amd64:v1.10.0 k8s.gcr.io\/kube-proxy-amd64:v1.10.0\ndocker tag registry.aliyuncs.com\/google_containers\/k8s-dns-kube-dns-amd64:1.14.8 k8s.gcr.io\/k8s-dns-kube-dns-amd64:1.14.8\ndocker tag registry.aliyuncs.com\/google_containers\/k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s.gcr.io\/k8s-dns-dnsmasq-nanny-amd64:1.14.8\ndocker tag registry.aliyuncs.com\/google_containers\/k8s-dns-sidecar-amd64:1.14.8 k8s.gcr.io\/k8s-dns-sidecar-amd64:1.14.8\ndocker tag registry.aliyuncs.com\/google_containers\/etcd-amd64:3.1.12 k8s.gcr.io\/etcd-amd64:3.1.12\ndocker tag registry.aliyuncs.com\/google_containers\/pause-amd64:3.1 k8s.gcr.io\/pause-amd64:3.1\ndocker tag dockerofwj\/flannel:latest quay.io\/coreos\/flannel:v0.10.0-amd64\n#\u5220\u9664\u539f\u955c\u50cf\ndocker rmi registry.aliyuncs.com\/google_containers\/kube-apiserver-amd64:v1.10.0\ndocker rmi registry.aliyuncs.com\/google_containers\/kube-scheduler-amd64:v1.10.0\ndocker rmi registry.aliyuncs.com\/google_containers\/kube-controller-manager-amd64:v1.10.0\ndocker rmi registry.aliyuncs.com\/google_containers\/kube-proxy-amd64:v1.10.0\ndocker rmi registry.aliyuncs.com\/google_containers\/k8s-dns-kube-dns-amd64:1.14.8\ndocker rmi registry.aliyuncs.com\/google_containers\/k8s-dns-dnsmasq-nanny-amd64:1.14.8\ndocker rmi registry.aliyuncs.com\/google_containers\/k8s-dns-sidecar-amd64:1.14.8\ndocker rmi registry.aliyuncs.com\/google_containers\/etcd-amd64:3.1.12\ndocker rmi registry.aliyuncs.com\/google_containers\/pause-amd64:3.1\ndocker rmi dockerofwj\/flannel:latest\n#node\u8282\u70b9\n#\u62c9\u53d6\u955c\u50cf\ndocker pull registry.aliyuncs.com\/google_containers\/kube-proxy-amd64:v1.10.0\ndocker pull registry.aliyuncs.com\/google_containers\/pause-amd64:3.1\ndocker pull dockerofwj\/flannel\n#tag\ndocker tag registry.aliyuncs.com\/google_containers\/pause-amd64:3.1 k8s.gcr.io\/pause-amd64:3.1\ndocker tag registry.aliyuncs.com\/google_containers\/kube-proxy-amd64:v1.10.0 k8s.gcr.io\/kube-proxy-amd64:v1.10.0\ndocker tag dockerofwj\/flannel:latest quay.io\/coreos\/flannel:v0.10.0-amd64\n#\u5220\u9664\u539f\u955c\u50cf\ndocker rmi dockerofwj\/flannel:latest\ndocker rmi registry.aliyuncs.com\/google_containers\/kube-proxy-amd64:v1.10.0\ndocker rmi registry.aliyuncs.com\/google_containers\/pause-amd64:3.1<\/pre>\n<\/div>\n<ul>\n<li><strong>\u5b89\u88c5kubelet\u3001kubeadm\u3001kubectl<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>yum install -y kubelet kubeadm kubectl\nsystemctl enable kubelet<\/pre>\n<\/div>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<h2 style=\\\"padding-left: 40px;\\\">\u5728Master\u8282\u70b9\u64cd\u4f5c<\/h2>\n<ul>\n<li>\u521d\u59cb\u5316kubernetes master\u8282\u70b9\uff1a<\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>#apiserver-advertise\u6307\u5b9aMaster Api\u7ec4\u4ef6\u76d1\u542c\u7684ip\u5730\u5740\uff0c\u4e0e\u5176\u4ed6\u5730\u5740\u901a\u4fe1\u7684\u5730\u5740\n#image-repository\u6307\u5b9a\u4ed3\u5e93\n#service-cidr\u6307\u5b9aservice\u7f51\u7edc\u7684ip\u5730\u5740\u6bb5\n#pod-network-cidr\u5bb9\u5668\u4f7f\u7528\u7684\u7f51\u7edc\u6bb5\nkubeadm init --apiserver-advertise-address=192.168.1.171 --image-repository registry.aliyuncs.com\/google_containers --kubernetes-version v1.16.1 --service-cidr=172.16.0.0\/16 --pod-network-cidr=10.244.0.0\/16\n#\u5982\u679ctoken\u5fd8\u8bb0\u4e86\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u67e5\u770b\nkubeadm token list\nopenssl x509 -pubkey -in \/etc\/kubernetes\/pki\/ca.crt | openssl rsa -pubin -outform der 2&gt;\/dev\/null | openssl dgst -sha256 -hex | sed \\'s\/^.* \/\/\\'\n#token 24\u5c0f\u65f6\u540e\u4f1a\u8fc7\u671f\uff0c\u91cd\u65b0\u521b\u5efa\u5373\u53ef\nkubeadm token create<\/pre>\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<ul>\n<li><strong>\u4f7f\u7528kubectl\u5de5\u5177<\/strong><\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>mkdir -p $HOME\/.kube\ncp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\nchown $(id -u):$(id -g) $HOME\/.kube\/config<\/pre>\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<ul>\n<li>\u5b89\u88c5Pod\u7f51\u7edc\u63d2\u4ef6 flannerl \uff0c\u5728Master\u8282\u70b9\u64cd\u4f5c<\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>#\u5148\u4ece\u56fd\u5185\u83b7\u53d6flannel\u955c\u50cf\ndocker pull registry.cn-shenzhen.aliyuncs.com\/chinabm_k8s\/flannel\ndocker tag registry.cn-shenzhen.aliyuncs.com\/chinabm_k8s\/flannel:v0.10.0-amd64 quay.io\/coreos\/flannel:v0.10.0-amd64\nwget https:\/\/raw.githubusercontent.com\/coreos\/flannel\/master\/Documentation\/kube-flannel.yml\n#flannel\u7684yml\u6587\u4ef6\u53ef\u80fd\u4f1a\u6709\u66f4\u65b0\uff0c\u6211\u4eec\u8fd8\u662f\u7528\u65e7\u7248\uff0c\u9700\u8981\u66ff\u6362\u4e00\u4e0b\nsed -i \\'s\/v0.11.0\/v0.10.0\/g\\' kube-flannel.yml\nkubectl apply -f kube-flannel.yml\n#\u67e5\u770b\u90e8\u7f72\u72b6\u6001\nkubectl get pods -n kube-system\n#flannel\u641e\u5931\u8d25\u4e86\u91cd\u88c5\u65b9\u6cd5\uff1a\nkubectl delete -f kube-flannel.yml<\/pre>\n<\/div>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u5907\u6ce8\uff1a\u662f flannel \u7684\u955c\u50cf\u62c9\u53d6\u9519\u8bef\uff0c\u53bb Docker hub \u4e0a\u641c\u7d22\u955c\u50cf\u4ee3\u66ff\u4e00\u4e0b<\/strong><\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>docker pull jmgao1983\/flannel:v0.10.0-amd64\n#\u6253\u6807\u8bb0\uff0c\u6807\u8bb0\u7684\u7248\u672c\u548cyaml\u6587\u4ef6\u5185\u9700\u4fdd\u6301\u4e00\u81f4\ndocker tag jmgao1983\/flannel:v0.10.0-amd64 quay.io\/coreos\/flannel:v0.10.0-amd64\nkubectl get pod -n kube-system\n#\u5220\u9664\u6709\u95ee\u9898\u7684\uff0c\u4f1a\u81ea\u52a8\u91cd\u5efa\nkubectl delete pod kube-flannel-ds-amd64-z4mvc -n kube-system<\/pre>\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<ul>\n<li>\u5728Node\u8282\u70b9\u64cd\u4f5c\uff1a<\/li>\n<\/ul>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>#\u6b64\u5904\u4e3a\u4e0a\u9762master\u521d\u59cb\u5316\u540e\u8f93\u51fa\u7684\u5185\u5bb9\uff0c\u590d\u5236\u5230\u8282\u70b9\u64cd\u4f5c\u5373\u53ef\nkubeadm join 192.168.1.171:6443 --token ltqdrr.iugj0d7sknf0yige --discovery-token-ca-cert-hash sha256:3b5de4eafde2bb496dfa26fb2e96bda678ed5265432009bf0aa7a0af647551c1\n#\u5982\u679c\u60f3\u8ba9\u7ba1\u7406\u8282\u70b9\u4e5f\u5f53\u8ba1\u7b97\u8282\u70b9\u4f7f\u7528\u5728\u7ba1\u7406\u8282\u70b9\u6865\u5982\u4e0b\u547d\u4ee4\nkubectl taint nodes server node-role.kubernetes.io\/master-<\/pre>\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<ul>\n<li>\u5b89\u88c5dashboard<\/li>\n<\/ul>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u4e0b\u8f7ddashboard yaml\uff1a<\/strong><\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>wget https:\/\/raw.githubusercontent.com\/kubernetes\/dashboard\/v1.10.1\/src\/deploy\/recommended\/kubernetes-dashboard.yaml<\/pre>\n<\/div>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u4fee\u6539\u4e3a\u963f\u91cc\u6e90<\/strong><\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>vim kubernetes-dashboard.yaml\n......\n containers:\n      - name: kubernetes-dashboard\n        #image: k8s.gcr.io\/kubernetes-dashboard-amd64:v1.10.1\n        image: registry.cn-hangzhou.aliyuncs.com\/google_containers\/kubernetes-dashboard-amd64:v1.10.1\n        ports:\n......<\/pre>\n<\/div>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u6dfb\u52a0\u7aef\u53e3\u6620\u5c04\uff08web\u7ba1\u7406\u7aef\u53e3\uff09\uff1a<\/strong><\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre class=\\\"line-numbers language-yaml\\\" style=\\\"padding-left: 40px;\\\">vim kubernetes-dashboard.yaml\n# ------------------- Dashboard Service ------------------- #\nkind: Service\napiVersion: v1\nmetadata:\n  labels:\n    k8s-app: kubernetes-dashboard\n  name: kubernetes-dashboard\n  namespace: kube-system\nspec:\n  type: NodePort       #\u589e\u52a0type: NodePort\n  ports:\n    - port: 443\n      targetPort: 8443\n      nodePort: 32222   #\u589e\u52a0nodePort: 32222\n  selector:\n    k8s-app: kubernetes-dashboard\n------------------\n<\/pre>\n<\/div>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u5b89\u88c5dashboard<\/strong><\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>kubectl apply -f kubernetes-dashboard.yaml\nkubectl create serviceaccount dashboard-admin -n kube-system\nkubectl create clusterrolebinding dashborad-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin<\/pre>\n<\/div>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u83b7\u53d6web\u767b\u5f55token<\/strong><\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>kubectl get secret -n kube-system |grep dashboard-admin\nkubectl describe  secret -n dashboard-admin-token-rjknr -n kube-system | grep -A10 dashboard-admin<\/pre>\n<\/div>\n<h5 style=\\\"padding-left: 40px;\\\"><strong>\u8bbf\u95ee\u9875\u9762<\/strong><\/h5>\n<pre style=\\\"padding-left: 40px;\\\">https:\/\/ip:32222<\/pre>\n<h5 style=\\\"padding-left: 40px;\\\">\u5907\u6ce8\uff1a<\/h5>\n<h5 style=\\\"padding-left: 40px;\\\">\u4f7f\u7528chrome \u7248\u672c 76.0.3809.100 \u4f1a\u62a5\u8bc1\u4e66\u95ee\u9898\uff0c\u65e0\u6cd5\u5ffd\u7565<br \/>\n\u6362firefox\u6b63\u5e38<br \/>\nChrome\u6d4f\u89c8\u5668\u65e0\u6cd5\u8bbf\u95eeK8S dashboard\u95ee\u9898\u5904\u7406<\/h5>\n<h5 style=\\\"padding-left: 40px;\\\">\u5e38\u7528\u547d\u4ee4<\/h5>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>#\u6620\u5c04\u5916\u90e8\u7aef\u53e3 8080\u6620\u5c04\u4e3a\u5916\u7f5118080\nkubectl expose deployment tomcat001 --port=8080 --target-port=18080 --external-ip=192.168.1.171<\/pre>\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<h4 style=\\\"padding-left: 40px;\\\"><strong>\u542f\u52a8mysql5.7<\/strong><\/h4>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>apiVersion: v1\nkind: ReplicationController\nmetadata:\n  name: mysql\nspec:\n  replicas: 1\n  selector:\n    app: mysql\n  template:\n    metadata:\n      labels:\n        app: mysql\n    spec:\n      containers:\n      - name: mysql\n        image: centos\/mysql-57-centos7\n        ports:\n        - containerPort: 3306\n        env:\n        - name: MYSQL_ROOT_PASSWORD\n          value: \\\"123456\\\"<\/pre>\n<div class=\\\"toolbar\\\" style=\\\"padding-left: 40px;\\\"><\/div>\n<\/div>\n<h4 style=\\\"padding-left: 40px;\\\"><strong>\u521b\u5efaservice<\/strong><\/h4>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>apiVersion: v1\nkind: Service\nmetadata:\n  name: mysql1\nspec:\n  type: NodePort\n  ports:\n    - port: 3306\n      nodePort: 30306\n      targetPort: 3306\n  selector:\n    app: mysql<\/pre>\n<\/div>\n<h4 style=\\\"padding-left: 40px;\\\"><strong>\u6dfb\u52a0\u963f\u91cc\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u79d8\u94a5<\/strong><\/h4>\n<div class=\\\"code-toolbar\\\" style=\\\"padding-left: 40px;\\\">\n<pre>kubectl create secret docker-registry alisecret --docker-server=registry.cn-shenzhen.aliyuncs.com --docker-username=USERNAME --docker-password=PASSWORD --docker-email=1139905088@qq.com<\/pre>\n<\/div>\n<p style=\\\"padding-left: 40px;\\\"><strong>\u6784\u5efapod\u7684\u65f6\u5019\u9700\u5728containers\u5e76\u5217\u7ea7\u522b\u52a0\u5982\u4e0b\u53c2\u6570<\/strong><\/p>\n<div>\n<pre style=\\\"padding-left: 40px;\\\">imagePullSecrets:\n- name: alisecret<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes\u4ecb\u7ecd Kubernetes\uff08\u7b80\u79f0k8s\uff09\u662fGoogle\u57282014\u5e746\u6708\u5f00\u6e90\u7684\u4e00\u4e2a\u5bb9\u5668\u96c6\u7fa4\u7ba1 &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.weijing.co\/?p=1259\"> <span class=\"screen-reader-text\">kubernetes\u96c6\u7fa4\u5b89\u88c5\u90e8\u7f72<\/span> \u67e5\u770b\u5168\u6587 &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[104],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false,"shop_catalog":false,"shop_single":false,"shop_thumbnail":false},"uagb_author_info":{"display_name":"weijing","author_link":"http:\/\/www.weijing.co\/?author=4"},"uagb_comment_info":0,"uagb_excerpt":"Kubernetes\u4ecb\u7ecd Kubernetes\uff08\u7b80\u79f0k8s\uff09\u662fGoogle\u57282014\u5e746\u6708\u5f00\u6e90\u7684\u4e00\u4e2a\u5bb9\u5668\u96c6\u7fa4\u7ba1&hellip;","_links":{"self":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/1259"}],"collection":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1259"}],"version-history":[{"count":0,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/1259\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1259"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}