{"id":36246,"date":"2023-06-22T05:02:57","date_gmt":"2024-02-06T16:45:41","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/"},"modified":"2024-04-30T10:06:54","modified_gmt":"2024-04-30T02:06:54","slug":"%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/","title":{"rendered":"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr"},"content":{"rendered":"<h1>\u4f7f\u7528 kubeadm \u66f4\u6539 Pod \u7f51\u7edc CIDR<\/h1>\n<p>\u5728\u4f7f\u7528kubeadm\u5b89\u88c5kubernetes\u96c6\u7fa4\u65f6\uff0c\u5982\u679c\u8981\u4f7f\u7528Flannel\uff0c\u9700\u8981\u5728\u6587\u6863\u4e2d\u6307\u5b9a\u4e00\u4e2a\u7279\u5b9a\u7684\u503c\u4f5c\u4e3apod-network-cidr\u3002\u6587\u6863\u4e2d\u6307\u51fa\u9700\u8981\u6307\u5b9a&#8211;pod-network-cidr=10.244.0.0\/16\uff0c\u8fd9\u8868\u793a\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u76f8\u5bf9\u8f83\u5927\u7684\/16\u6bb5\u3002<\/p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c\u4ee5\u4e0b\u662f\u4e00\u79cd\u53ef\u80fd\u7684\u5f62\u8c61\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d281137434c4406c3ee2b\/3-0.png\" alt=\"001.png\" \/><\/div>\n<p>\u6839\u636e\u6c14\u6ce1\u4e2d\u6240\u8ff0\uff0c\u7531\u4e8e\/16\u7684\u8303\u56f4\u76f8\u5f53\u5e7f\u9614\uff0c\u6240\u4ee5\u53ef\u80fd\u4e0e\u73b0\u6709\u7684\u7f51\u7edc\u91cd\u53e0\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u8fdb\u884c\u4e86\u66f4\u6539\u65b9\u6cd5\u7684\u8c03\u67e5\u3002<br \/>\n\u6700\u7ec8\u7ed3\u679c\u662f\u6210\u529f\u5730\u66f4\u6539\u4e86CIDR\uff0c\u4ee5\u4e0b\u662f\u8be6\u7ec6\u6b65\u9aa4\u3002<\/p>\n<p>\u4e0b\u9762\u662f\u7248\u672c\u4fe1\u606f\u76ee\u5f55\u4e0b\u7684\u5185\u5bb9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kubernetes 1.10<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">kubeadm 1.10<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">CentOS 7.5<\/ul>\n<h1>\u5728\u6240\u6709\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u4e8b\u5148\u8bbe\u7f6e\u3002<\/h1>\n<p>\u5728\u6267\u884ckubeadm\u65f6\uff0c\u5982\u679cswap\u662f\u542f\u7528\u7684\uff0c\u5219\u5b89\u88c5\u5c06\u5931\u8d25\uff0c\u56e0\u6b64\u6211\u4eec\u8981\u7981\u7528swap\u3002<\/p>\n<pre class=\"post-pre\"><code>swapoff -a\r\n<\/code><\/pre>\n<p>\u7f16\u8f91<\/p>\n<pre class=\"post-pre\"><code>vim \/etc\/fstab\r\n<\/code><\/pre>\n<h1>\u5728\u6240\u6709\u670d\u52a1\u5668\u4e0a\u8fdb\u884ckubeadm\u5b89\u88c5\u3002<\/h1>\n<p>\u5b89\u88c5Docker<\/p>\n<pre class=\"post-pre\"><code>yum install -y docker\r\nsystemctl enable docker &amp;&amp; systemctl start docker\r\n<\/code><\/pre>\n<p>\u4f9d\u5b58\u5173\u7cfb\u5907\u5fd8\u5f55<\/p>\n<pre class=\"post-pre\"><code>============================================================================================================================================\r\n Package                                Arch                  Version                                           Repository             Size\r\n============================================================================================================================================\r\nInstalling:\r\n docker                                 x86_64                2:1.13.1-63.git94f4240.el7.centos                 extras                 16 M\r\nInstalling for dependencies:\r\n audit-libs-python                      x86_64                2.8.1-3.el7                                       base                   75 k\r\n checkpolicy                            x86_64                2.5-6.el7                                         base                  294 k\r\n container-selinux                      noarch                2:2.55-1.el7                                      extras                 34 k\r\n container-storage-setup                noarch                0.9.0-1.rhel75.gite0997c3.el7                     extras                 33 k\r\n docker-client                          x86_64                2:1.13.1-63.git94f4240.el7.centos                 extras                3.8 M\r\n docker-common                          x86_64                2:1.13.1-63.git94f4240.el7.centos                 extras                 88 k\r\n libcgroup                              x86_64                0.41-15.el7                                       base                   65 k\r\n libsemanage-python                     x86_64                2.5-11.el7                                        base                  112 k\r\n oci-register-machine                   x86_64                1:0-6.git2b44233.el7                              extras                1.1 M\r\n oci-systemd-hook                       x86_64                1:0.1.15-2.gitc04483d.el7                         extras                 33 k\r\n oci-umount                             x86_64                2:2.3.3-3.gite3c9055.el7                          extras                 32 k\r\n policycoreutils-python                 x86_64                2.5-22.el7                                        base                  454 k\r\n python-IPy                             noarch                0.75-6.el7                                        base                   32 k\r\n setools-libs                           x86_64                3.3.8-2.el7                                       base                  619 k\r\n skopeo-containers                      x86_64                1:0.1.29-3.dev.git7add6fc.el7.0                   extras                 15 k\r\n yajl                                   x86_64                2.0.4-4.el7                                       base                   39 k\r\n\r\nTransaction Summary\r\n============================================================================================================================================\r\n<\/code><\/pre>\n<p>\u5b58\u50a8\u5e93\u8bbe\u7f6e<\/p>\n<pre class=\"post-pre\"><code>cat &lt;&lt;EOF &gt; \/etc\/yum.repos.d\/kubernetes.repo\r\n[kubernetes]\r\nname=Kubernetes\r\nbaseurl=https:\/\/packages.cloud.google.com\/yum\/repos\/kubernetes-el7-x86_64\r\nenabled=1\r\ngpgcheck=1\r\nrepo_gpgcheck=1\r\ngpgkey=https:\/\/packages.cloud.google.com\/yum\/doc\/yum-key.gpg https:\/\/packages.cloud.google.com\/yum\/doc\/rpm-package-key.gpg\r\nEOF\r\n<\/code><\/pre>\n<p>\u5b89\u88c5kubelet\u3001kubeadm\u548ckubectl\u3002<\/p>\n<pre class=\"post-pre\"><code>yum install -y kubelet kubeadm kubectl\r\nsystemctl enable kubelet &amp;&amp; systemctl start kubelet\r\n<\/code><\/pre>\n<p>\u4f9d\u5b58\u5173\u7cfb\u5907\u5fd8\u5f55<\/p>\n<pre class=\"post-pre\"><code>============================================================================================================================================\r\n Package                             Arch                        Version                              Repository                       Size\r\n============================================================================================================================================\r\nInstalling:\r\n kubeadm                             x86_64                      1.10.4-0                             kubernetes                       17 M\r\n kubectl                             x86_64                      1.10.4-0                             kubernetes                      7.6 M\r\n kubelet                             x86_64                      1.10.4-0                             kubernetes                       17 M\r\nInstalling for dependencies:\r\n kubernetes-cni                      x86_64                      0.6.0-0                              kubernetes                      8.6 M\r\n socat                               x86_64                      1.7.3.2-2.el7                        base                            290 k\r\n\r\nTransaction Summary\r\n============================================================================================================================================\r\n<\/code><\/pre>\n<p>\u636e\u62a5\u9053\uff0c\u7531\u4e8eiptables\u7ed5\u8fc7\u4e86\u6b63\u5e38\u7684\u8def\u7531\u673a\u5236\uff0c\u5bfc\u81f4\u4e86\u4e00\u4e9b\u65e0\u6cd5\u6b63\u786e\u8def\u7531\u7684\u95ee\u9898\u3002\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u7684sysctl\u53c2\u6570\u6765\u89e3\u51b3\u3002<\/p>\n<pre class=\"post-pre\"><code>cat &lt;&lt;EOF &gt;  \/etc\/sysctl.d\/k8s.conf\r\nnet.bridge.bridge-nf-call-ip6tables = 1\r\nnet.bridge.bridge-nf-call-iptables = 1\r\nEOF\r\nsysctl --system\r\n<\/code><\/pre>\n<p>\u6267\u884c\u793a\u4f8b<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes19-node02 ~]# sysctl --system\r\n* Applying \/usr\/lib\/sysctl.d\/00-system.conf ...\r\nnet.bridge.bridge-nf-call-ip6tables = 0\r\nnet.bridge.bridge-nf-call-iptables = 0\r\nnet.bridge.bridge-nf-call-arptables = 0\r\n* Applying \/usr\/lib\/sysctl.d\/10-default-yama-scope.conf ...\r\nkernel.yama.ptrace_scope = 0\r\n* Applying \/usr\/lib\/sysctl.d\/50-default.conf ...\r\nkernel.sysrq = 16\r\nkernel.core_uses_pid = 1\r\nnet.ipv4.conf.default.rp_filter = 1\r\nnet.ipv4.conf.all.rp_filter = 1\r\nnet.ipv4.conf.default.accept_source_route = 0\r\nnet.ipv4.conf.all.accept_source_route = 0\r\nnet.ipv4.conf.default.promote_secondaries = 1\r\nnet.ipv4.conf.all.promote_secondaries = 1\r\nfs.protected_hardlinks = 1\r\nfs.protected_symlinks = 1\r\n* Applying \/usr\/lib\/sysctl.d\/99-docker.conf ...\r\nfs.may_detach_mounts = 1\r\n* Applying \/etc\/sysctl.d\/99-sysctl.conf ...\r\n* Applying \/etc\/sysctl.d\/k8s.conf ...\r\nnet.bridge.bridge-nf-call-ip6tables = 1\r\nnet.bridge.bridge-nf-call-iptables = 1\r\n* Applying \/etc\/sysctl.conf ...\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u65b9\u6cd5\u6765\u786e\u4fddDocker\u4f7f\u7528\u7684cgroup driver\u4e0ekubelet\u8ba4\u53ef\u7684cgroup driver\u4e00\u81f4\uff1a<br \/>\n\u68c0\u67e5Docker\u662f\u5426\u4f7f\u7528systemd\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes19-master01 ~]# docker info | grep -i cgroup\r\n  WARNING: You're not using the default seccomp profile\r\nCgroup Driver: systemd\r\n<\/code><\/pre>\n<p>\u7531\u4e8ekubelet\u7684\u9a71\u52a8\u7a0b\u5e8f\u6307\u5b9a\u4e5f\u662fsystemd\uff0c\u6240\u4ee5\u6ca1\u6709\u95ee\u9898\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes19-master01 ~]# cat \/etc\/systemd\/system\/kubelet.service.d\/10-kubeadm.conf | grep cgroup\r\nEnvironment=\"KUBELET_CGROUP_ARGS=--cgroup-driver=systemd\"\r\n<\/code><\/pre>\n<h1>\u66f4\u6539 kubelet \u7684\u53c2\u6570<\/h1>\n<p>\u5728\u6240\u6709\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\u7684 kubelet \u4e2d\uff0c\u6307\u5b9a\u4e86 kube-dns \u7684\u5730\u5740\uff0810.96.0.10\uff09\u3002<\/p>\n<p>\u5c06\u6b64\u66f4\u6539\u4e3a10.1.0.10<\/p>\n<pre class=\"post-pre\"><code>cat &lt;&lt;'EOF' &gt; \/etc\/systemd\/system\/kubelet.service.d\/10-kubeadm.conf\r\n[Service]\r\nEnvironment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=\/etc\/kubernetes\/bootstrap-kubelet.conf --kubeconfig=\/etc\/kubernetes\/kubelet.conf\"\r\nEnvironment=\"KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=\/etc\/kubernetes\/manifests --allow-privileged=true\"\r\nEnvironment=\"KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=\/etc\/cni\/net.d --cni-bin-dir=\/opt\/cni\/bin\"\r\nEnvironment=\"KUBELET_DNS_ARGS=--cluster-dns=10.1.0.10 --cluster-domain=cluster.local\"\r\nEnvironment=\"KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=\/etc\/kubernetes\/pki\/ca.crt\"\r\nEnvironment=\"KUBELET_CADVISOR_ARGS=--cadvisor-port=0\"\r\nEnvironment=\"KUBELET_CGROUP_ARGS=--cgroup-driver=systemd\"\r\nEnvironment=\"KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=\/var\/lib\/kubelet\/pki\"\r\nExecStart=\r\nExecStart=\/usr\/bin\/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS\r\nEOF\r\nsystemctl daemon-reload\r\nsystemctl restart kubelet.service\r\n<\/code><\/pre>\n<h1>\u5728\u4e3b\u8282\u70b9\u624b\u52a8\u5b89\u88c5(\u4e0d\u9700\u8981\u505a)etcd\u3002<\/h1>\n<p>\u4f7f\u7528kubeadm\u65f6\uff0c\u5c06\u5728Master\u4e0a\u751f\u6210etcd\u4f5c\u4e3aPod\uff0c\u4f46\u662f\u7531\u4e8e\u4e0d\u592a\u6e05\u695a\u5982\u4f55\u6267\u884chttps\u901a\u4fe1\u548cetcdctl\u547d\u4ee4\uff0c\u6240\u4ee5\u9700\u8981\u624b\u52a8\u6267\u884c\u3002<\/p>\n<p>\u5728Master\u4e0a\u5b89\u88c5etcd\u3002<\/p>\n<pre class=\"post-pre\"><code>yum install -y etcd\r\n<\/code><\/pre>\n<p>\u4e92\u76f8\u4f9d\u8d56\u5173\u7cfb<\/p>\n<pre class=\"post-pre\"><code>============================================================================================================================================\r\n Package                       Arch                            Version                                Repository                       Size\r\n============================================================================================================================================\r\nInstalling:\r\n etcd                          x86_64                          3.2.18-1.el7                           extras                          9.3 M\r\n\r\nTransaction Summary\r\n============================================================================================================================================\r\n<\/code><\/pre>\n<p>\u5907\u4efdetcd\u7684\u914d\u7f6e\u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code>cp -p \/etc\/etcd\/etcd.conf{,.org}\r\n<\/code><\/pre>\n<p>\u7f16\u8f91etcd\u7684\u914d\u7f6e\u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code>cat &lt;&lt;'EOF' &gt; \/etc\/etcd\/etcd.conf\r\n#[Member]\r\n#ETCD_CORS=\"\"\r\nETCD_DATA_DIR=\"\/var\/lib\/etcd\/default.etcd\"\r\n#ETCD_WAL_DIR=\"\"\r\n#ETCD_LISTEN_PEER_URLS=\"http:\/\/localhost:2380\"\r\nETCD_LISTEN_CLIENT_URLS=\"http:\/\/0.0.0.0:2379\"\r\n#ETCD_MAX_SNAPSHOTS=\"5\"\r\n#ETCD_MAX_WALS=\"5\"\r\nETCD_NAME=\"default\"\r\n#ETCD_SNAPSHOT_COUNT=\"100000\"\r\n#ETCD_HEARTBEAT_INTERVAL=\"100\"\r\n#ETCD_ELECTION_TIMEOUT=\"1000\"\r\n#ETCD_QUOTA_BACKEND_BYTES=\"0\"\r\n#ETCD_MAX_REQUEST_BYTES=\"1572864\"\r\n#ETCD_GRPC_KEEPALIVE_MIN_TIME=\"5s\"\r\n#ETCD_GRPC_KEEPALIVE_INTERVAL=\"2h0m0s\"\r\n#ETCD_GRPC_KEEPALIVE_TIMEOUT=\"20s\"\r\n#\r\n#[Clustering]\r\n#ETCD_INITIAL_ADVERTISE_PEER_URLS=\"http:\/\/localhost:2380\"\r\nETCD_ADVERTISE_CLIENT_URLS=\"http:\/\/0.0.0.0:2379\"\r\n#ETCD_DISCOVERY=\"\"\r\n#ETCD_DISCOVERY_FALLBACK=\"proxy\"\r\n#ETCD_DISCOVERY_PROXY=\"\"\r\n#ETCD_DISCOVERY_SRV=\"\"\r\n#ETCD_INITIAL_CLUSTER=\"default=http:\/\/localhost:2380\"\r\n#ETCD_INITIAL_CLUSTER_TOKEN=\"etcd-cluster\"\r\n#ETCD_INITIAL_CLUSTER_STATE=\"new\"\r\n#ETCD_STRICT_RECONFIG_CHECK=\"true\"\r\n#ETCD_ENABLE_V2=\"true\"\r\n#\r\n#[Proxy]\r\n#ETCD_PROXY=\"off\"\r\n#ETCD_PROXY_FAILURE_WAIT=\"5000\"\r\n#ETCD_PROXY_REFRESH_INTERVAL=\"30000\"\r\n#ETCD_PROXY_DIAL_TIMEOUT=\"1000\"\r\n#ETCD_PROXY_WRITE_TIMEOUT=\"5000\"\r\n#ETCD_PROXY_READ_TIMEOUT=\"0\"\r\n#\r\n#[Security]\r\n#ETCD_CERT_FILE=\"\"\r\n#ETCD_KEY_FILE=\"\"\r\n#ETCD_CLIENT_CERT_AUTH=\"false\"\r\n#ETCD_TRUSTED_CA_FILE=\"\"\r\n#ETCD_AUTO_TLS=\"false\"\r\n#ETCD_PEER_CERT_FILE=\"\"\r\n#ETCD_PEER_KEY_FILE=\"\"\r\n#ETCD_PEER_CLIENT_CERT_AUTH=\"false\"\r\n#ETCD_PEER_TRUSTED_CA_FILE=\"\"\r\n#ETCD_PEER_AUTO_TLS=\"false\"\r\n#\r\n#[Logging]\r\n#ETCD_DEBUG=\"false\"\r\n#ETCD_LOG_PACKAGE_LEVELS=\"\"\r\n#ETCD_LOG_OUTPUT=\"default\"\r\n#\r\n#[Unsafe]\r\n#ETCD_FORCE_NEW_CLUSTER=\"false\"\r\n#\r\n#[Version]\r\n#ETCD_VERSION=\"false\"\r\n#ETCD_AUTO_COMPACTION_RETENTION=\"0\"\r\n#\r\n#[Profiling]\r\n#ETCD_ENABLE_PPROF=\"false\"\r\n#ETCD_METRICS=\"basic\"\r\n#\r\n#[Auth]\r\n#ETCD_AUTH_TOKEN=\"simple\"\r\nEOF\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u53d8\u66f4\u786e\u8ba4\u70b9<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubeadm-master01 etcd]# diff -u \/etc\/etcd\/etcd.conf \/etc\/etcd\/etcd.conf.org\r\n--- \/etc\/etcd\/etcd.conf 2018-06-09 02:01:33.962445583 +0900\r\n+++ \/etc\/etcd\/etcd.conf.org     2018-05-19 00:55:57.000000000 +0900\r\n@@ -3,7 +3,7 @@\r\n ETCD_DATA_DIR=\"\/var\/lib\/etcd\/default.etcd\"\r\n #ETCD_WAL_DIR=\"\"\r\n #ETCD_LISTEN_PEER_URLS=\"http:\/\/localhost:2380\"\r\n-ETCD_LISTEN_CLIENT_URLS=\"http:\/\/0.0.0.0:2379\"\r\n+ETCD_LISTEN_CLIENT_URLS=\"http:\/\/localhost:2379\"\r\n #ETCD_MAX_SNAPSHOTS=\"5\"\r\n #ETCD_MAX_WALS=\"5\"\r\n ETCD_NAME=\"default\"\r\n@@ -18,7 +18,7 @@\r\n #\r\n #[Clustering]\r\n #ETCD_INITIAL_ADVERTISE_PEER_URLS=\"http:\/\/localhost:2380\"\r\n-ETCD_ADVERTISE_CLIENT_URLS=\"http:\/\/0.0.0.0:2379\"\r\n+ETCD_ADVERTISE_CLIENT_URLS=\"http:\/\/localhost:2379\"\r\n #ETCD_DISCOVERY=\"\"\r\n #ETCD_DISCOVERY_FALLBACK=\"proxy\"\r\n #ETCD_DISCOVERY_PROXY=\"\"\r\n<\/code><\/pre>\n<p>\u542f\u52a8etcd\u3002<\/p>\n<pre class=\"post-pre\"><code>systemctl start etcd\r\nsystemctl status etcd\r\nsystemctl enable etcd\r\n<\/code><\/pre>\n<p>\u4f7f\u7528etcdctl\u547d\u4ee4\u786e\u8ba4etcd\u7684\u6210\u5458\u5217\u8868\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubeadm-master01 etcd]# etcdctl member list\r\n8e9e05c52164694d: name=default peerURLs=http:\/\/localhost:2380 clientURLs=http:\/\/0.0.0.0:2379 isLeader=true\r\n<\/code><\/pre>\n<h1>\u4f7f\u7528kubeadm\u5bf9Master\u8fdb\u884c\u914d\u7f6e\u3002<\/h1>\n<p>\u53ef\u4ee5\u5c06config\u6587\u4ef6\u4f5c\u4e3a\u53c2\u6570\u4f20\u9012\u7ed9kubeadm\u547d\u4ee4\u3002<br \/>\n\u4f7f\u7528networking.podSubnet\u6307\u5b9apod-network-cidr\u3002<br \/>\n\u5bf9\u4e8e\u6784\u5efaKubernetes\u96c6\u7fa4\u7684\u6bcf\u4e2a\u673a\u5668\uff0c\u4f7f\u7528\/24\u5b50\u7f51\uff0c\u6240\u4ee5\u5982\u679c\u6307\u5b9a\/22\uff0c\u5c06\u9650\u5236\u4e3a4\u4e2a\u670d\u52a1\u5668\u4f5c\u4e3a\u96c6\u7fa4\u7684\u6700\u5927\u9650\u5236\u3002<\/p>\n<p>\u8bf7\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u521b\u5efaconfig\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>mkdir \/root\/kubeadm\/\r\ncat &lt;&lt;'EOF' &gt; \/root\/kubeadm\/config.yaml\r\napiVersion: kubeadm.k8s.io\/v1alpha1\r\nkind: MasterConfiguration\r\netcd:\r\n  endpoints:\r\n  - 'http:\/\/127.0.0.1:2379'\r\nnetworking:\r\n  serviceSubnet: '10.1.0.0\/22'\r\n  podSubnet: '10.1.4.0\/22'\r\ntokenTTL: '0'\r\nEOF\r\n<\/code><\/pre>\n<p>\u6267\u884c kubeadm<\/p>\n<pre class=\"post-pre\"><code>kubeadm init --config \/root\/kubeadm\/config.yaml\r\n<\/code><\/pre>\n<p>\u5927\u7ea6\u9700\u8981\u5927\u7ea62\u5206\u949f\u5b8c\u6210<\/p>\n<p>\u6267\u884c\u793a\u4f8b<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubeadm-master01 kubeadm]# kubeadm init --config \/root\/kubeadm\/config.yaml\r\n[init] Using Kubernetes version: v1.10.4\r\n[init] Using Authorization modes: [Node RBAC]\r\n[preflight] Running pre-flight checks.\r\n        [WARNING Hostname]: hostname \"sugi-kubeadm-master01.localdomain\" could not be reached\r\n        [WARNING Hostname]: hostname \"sugi-kubeadm-master01.localdomain\" lookup sugi-kubeadm-master01.localdomain on 8.8.8.8:53: no such host\r\n        [WARNING FileExisting-crictl]: crictl not found in system path\r\nSuggestion: go get github.com\/kubernetes-incubator\/cri-tools\/cmd\/crictl\r\n[certificates] Generated ca certificate and key.\r\n[certificates] Generated apiserver certificate and key.\r\n[certificates] apiserver serving cert is signed for DNS names [sugi-kubeadm-master01.localdomain kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.1.0.1 192.168.120.225]\r\n[certificates] Generated apiserver-kubelet-client certificate and key.\r\n[certificates] Generated sa key and public key.\r\n[certificates] Generated front-proxy-ca certificate and key.\r\n[certificates] Generated front-proxy-client certificate and key.\r\n[certificates] Valid certificates and keys now exist in \"\/etc\/kubernetes\/pki\"\r\n[kubeconfig] Wrote KubeConfig file to disk: \"\/etc\/kubernetes\/admin.conf\"\r\n[kubeconfig] Wrote KubeConfig file to disk: \"\/etc\/kubernetes\/kubelet.conf\"\r\n[kubeconfig] Wrote KubeConfig file to disk: \"\/etc\/kubernetes\/controller-manager.conf\"\r\n[kubeconfig] Wrote KubeConfig file to disk: \"\/etc\/kubernetes\/scheduler.conf\"\r\n[controlplane] Wrote Static Pod manifest for component kube-apiserver to \"\/etc\/kubernetes\/manifests\/kube-apiserver.yaml\"\r\n[controlplane] Wrote Static Pod manifest for component kube-controller-manager to \"\/etc\/kubernetes\/manifests\/kube-controller-manager.yaml\"\r\n[controlplane] Wrote Static Pod manifest for component kube-scheduler to \"\/etc\/kubernetes\/manifests\/kube-scheduler.yaml\"\r\n[init] Waiting for the kubelet to boot up the control plane as Static Pods from directory \"\/etc\/kubernetes\/manifests\".\r\n[init] This might take a minute or longer if the control plane images have to be pulled.\r\n[apiclient] All control plane components are healthy after 79.012574 seconds\r\n[uploadconfig]\u00a0Storing the configuration used in ConfigMap \"kubeadm-config\" in the \"kube-system\" Namespace\r\n[markmaster] Will mark node sugi-kubeadm-master01.localdomain as master by adding a label and a taint\r\n[markmaster] Master sugi-kubeadm-master01.localdomain tainted and labelled with key\/value: node-role.kubernetes.io\/master=\"\"\r\n[bootstraptoken] Using token: jsw3w2.ce3h3symthg4n8cb\r\n[bootstraptoken] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials\r\n[bootstraptoken] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token\r\n[bootstraptoken] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster\r\n[bootstraptoken] Creating the \"cluster-info\" ConfigMap in the \"kube-public\" namespace\r\n[addons] Applied essential addon: kube-dns\r\n[addons] Applied essential addon: kube-proxy\r\n\r\nYour Kubernetes master has initialized successfully!\r\n\r\nTo start using your cluster, you need to run the following as a regular user:\r\n\r\n  mkdir -p $HOME\/.kube\r\n  sudo cp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\r\n  sudo chown $(id -u):$(id -g) $HOME\/.kube\/config\r\n\r\nYou should now deploy a pod network to the cluster.\r\nRun \"kubectl apply -f [podnetwork].yaml\" with one of the options listed at:\r\n  https:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/addons\/\r\n\r\nYou can now join any number of machines by running the following on each node\r\nas root:\r\n\r\n  kubeadm join 192.168.120.225:6443 --token jsw3w2.ce3h3symthg4n8cb --discovery-token-ca-cert-hash sha256:38977016e9273b8140c50e0f40a06f70ff85c430ebe4c40bfb18d60ac3509aae\r\n\r\n<\/code><\/pre>\n<h1>\u5176\u4ed6\u8a2d\u5b9a\u53ef\u4ee5\u8b93\u4f7f\u7528\u66f4\u52a0\u65b9\u4fbf\u3002<\/h1>\n<h2>\u542f\u7528 bash_completion<\/h2>\n<p>\u4e3a\u4e86\u542f\u7528kubectl\u5b50\u547d\u4ee4\u7684\u81ea\u52a8\u8865\u5168\u529f\u80fd\uff0c\u8bf7\u5b89\u88c5\u4ee5\u4e0b\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes110-master01 ~]# yum install -y bash-completion\r\nLoaded plugins: fastestmirror\r\nbase                                                                                                                                 | 3.6 kB  00:00:00     \r\nextras                                                                                                                               | 3.4 kB  00:00:00     \r\nkubernetes\/signature                                                                                                                 |  454 B  00:00:00     \r\nkubernetes\/signature                                                                                                                 | 1.4 kB  00:00:00 !!! \r\nupdates                                                                                                                              | 3.4 kB  00:00:00     \r\nLoading mirror speeds from cached hostfile\r\n * base: ftp.riken.jp\r\n * extras: ftp.riken.jp\r\n * updates: ftp.riken.jp\r\nResolving Dependencies\r\n--&gt; Running transaction check\r\n---&gt; Package bash-completion.noarch 1:2.1-6.el7 will be installed\r\n--&gt; Finished Dependency Resolution\r\n\r\nDependencies Resolved\r\n\r\n============================================================================================================================================================\r\n Package                                    Arch                              Version                                 Repository                       Size\r\n============================================================================================================================================================\r\nInstalling:\r\n bash-completion                            noarch                            1:2.1-6.el7                             base                             85 k\r\n\r\nTransaction Summary\r\n============================================================================================================================================================\r\nInstall  1 Package\r\n\r\nTotal download size: 85 k\r\nInstalled size: 259 k\r\nIs this ok [y\/d\/N]: \r\n<\/code><\/pre>\n<p>\u8bf7\u5728bashrc\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u884c<\/p>\n<pre class=\"post-pre\"><code>echo \"source &lt;(kubectl completion bash)\" &gt;&gt; ~\/.bashrc\r\n<\/code><\/pre>\n<p>\u5f53\u60a8\u9000\u51fa\u4e00\u6b21\u7ec8\u7aef\u5e76\u91cd\u65b0\u767b\u5f55\u540e\uff0ckubectl\u7684\u8865\u5168\u529f\u80fd\u5c06\u88ab\u542f\u7528\u3002<\/p>\n<h2>\u5b89\u88c5 kubectx \u548c kubens<\/h2>\n<pre class=\"post-pre\"><code>sudo git clone https:\/\/github.com\/ahmetb\/kubectx \/opt\/kubectx\r\nsudo ln -s \/opt\/kubectx\/kubectx \/usr\/local\/bin\/kubectx\r\nsudo ln -s \/opt\/kubectx\/kubens \/usr\/local\/bin\/kubens\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5 kube-prompt-bash\u3002<\/h2>\n<pre class=\"post-pre\"><code>cd ~\r\ngit clone https:\/\/github.com\/Sugi275\/kube-prompt-bash.git\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>echo \"source ~\/kube-prompt-bash\/kube-prompt-bash.sh\" &gt;&gt; ~\/.bashrc\r\necho 'export PS1='\\''[\\u@\\h \\W($(kube_prompt))]\\$ '\\' &gt;&gt; ~\/.bashrc\r\n<\/code><\/pre>\n<h1>\u5c06kubectl\u7684\u914d\u7f6e\u6587\u4ef6\u521b\u5efa\u5230\u4e3b\u76ee\u5f55\u4e2d<\/h1>\n<p>\u5c06\u7531 kubeadm \u81ea\u52a8\u521b\u5efa\u7684\u914d\u7f6e\u6587\u4ef6\u590d\u5236\u5230\u4e3b\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>mkdir ~\/.kube\r\ncp -p \/etc\/kubernetes\/admin.conf ~\/.kube\/config\r\n<\/code><\/pre>\n<p>\u73af\u5883\u53d8\u91cf\u4e2d\u6307\u5b9a\u4e86KUBECONFIG=\/etc\/kubernetes\/admin.conf\uff0c\u5e76\u4e14\u9700\u8981\u4fee\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code>export KUBECONFIG=$HOME\/.kube\/config\r\n<\/code><\/pre>\n<p>\u5728 bash_profile \u4e2d\u5b9a\u4e49\u4e86\u4e0a\u8ff0\u73af\u5883\u53d8\u91cf\uff0c\u5e76\u9700\u8981\u5bf9\u5176\u8fdb\u884c\u66f4\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code>vim ~\/.bash_profile\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u6dfb\u52a0\u4e00\u4e2anamespace\u6307\u5b9a\u5230\u590d\u5236\u6765\u7684config\u6587\u4ef6\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>vim ~\/.kube\/config\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>- context:\r\n    cluster: kubernetes\r\n    namespace: default  &lt;-------------\u8ffd\u52a0\r\n    user: kubernetes-admin\r\n  name: kubernetes-admin@kubernetes\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u4f7f\u7528kubectl config\u547d\u4ee4\u65f6\uff0cNAMESPACE \u662f\u5426\u663e\u793a\u4e3a\u9ed8\u8ba4\u503cdefault\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes110-master01 ~]# kubectl config get-contexts \r\nCURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE\r\n*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   default\r\n<\/code><\/pre>\n<h1>\u5907\u5fd8\u5f55\uff1aDNS\u5904\u4e8e\u5f85\u5b9a\u72b6\u6001\u3002<\/h1>\n<p>\u5728\u5f15\u5165Flannel\u4e4b\u524d\uff0c\u6b64\u65f6\u7684dns pod\u5904\u4e8e\u6302\u8d77\u72b6\u6001\u5e76\u4e14\u770b\u8d77\u6765\u662f\u5931\u8d25\u7684\uff0c\u4f46\u5b9e\u9645\u4e0a\u8fd9\u662f\u6b63\u5e38\u7684\u3002<\/p>\n<p>\u4f7f\u7528\u6cd5\u5170\u7ed2\u5e03\u6599\uff0c\u4f7f\u5176\u6b63\u5e38\u8fd0\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubeadm-master01 ~(kubernetes kube-system kubernetes-admin)]# kubectl get pods -o wide\r\nNAME                                                        READY     STATUS    RESTARTS   AGE       IP                NODE\r\nkube-apiserver-sugi-kubeadm-master01.localdomain            1\/1       Running   0          23m       192.168.120.225   sugi-kubeadm-master01.localdomain\r\nkube-controller-manager-sugi-kubeadm-master01.localdomain   1\/1       Running   0          23m       192.168.120.225   sugi-kubeadm-master01.localdomain\r\nkube-dns-86f4d74b45-kx99q                                   0\/3       Pending   0          23m       &lt;none&gt;            &lt;none&gt;\r\nkube-proxy-tw2x4                                            1\/1       Running   0          23m       192.168.120.225   sugi-kubeadm-master01.localdomain\r\nkube-scheduler-sugi-kubeadm-master01.localdomain            1\/1       Running   0          23m       192.168.120.225   sugi-kubeadm-master01.localdomain\r\n<\/code><\/pre>\n<h1>\u5b89\u88c5Flannel<\/h1>\n<p>\u4f7f\u7528wget\u547d\u4ee4\uff0c\u4eceGit\u4e0a\u4e0b\u8f7d\u516c\u5f00\u7684Flannel\u6e05\u5355\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>cd \/root\/kubeadm\r\nwget https:\/\/raw.githubusercontent.com\/coreos\/flannel\/v0.10.0\/Documentation\/kube-flannel.yml\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u662f\u7f16\u8f91\u6587\u4ef6\u7684\u65b9\u6cd5\u3002<\/p>\n<pre class=\"post-pre\"><code>cp -p kube-flannel.yml{,.org}\r\nvim kube-flannel.yml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>snip\r\n\r\n  net-conf.json: |\r\n    {\r\n      \"Network\": \"10.1.4.0\/22\",\r\n      \"Backend\": {\r\n        \"Type\": \"vxlan\"\r\n      }\r\n    }\r\n\r\nsnip\r\n<\/code><\/pre>\n<p>\u6211\u8981\u68c0\u67e5\u5206\u5dee\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubeadm-master01 kubeadm(kubernetes default kubernetes-admin)]# diff -u kube-flannel.yml.org kube-flannel.yml\r\n--- kube-flannel.yml.org        2018-06-09 15:09:22.294674317 +0900\r\n+++ kube-flannel.yml    2018-06-09 15:10:18.013393294 +0900\r\n@@ -73,7 +73,7 @@\r\n     }\r\n   net-conf.json: |\r\n     {\r\n-      \"Network\": \"10.244.0.0\/16\",\r\n+      \"Network\": \"10.1.4.0\/22\",\r\n       \"Backend\": {\r\n         \"Type\": \"vxlan\"\r\n       }\r\n<\/code><\/pre>\n<p>\u4ece\u6e05\u5355\u6587\u4ef6\u4e2d\u6267\u884c\u5e94\u7528\u7a0b\u5e8f<\/p>\n<pre class=\"post-pre\"><code>kubectl apply -f \/root\/kubeadm\/kube-flannel.yml\r\n<\/code><\/pre>\n<h1>\u5728\u8282\u70b9\u670d\u52a1\u5668\u4e0a\u6267\u884c<\/h1>\n<p>\u6267\u884ckubeadm\u547d\u4ee4\u4ee5\u53c2\u52a0Master<br \/>\n\u5f15\u7528\u81ea\u5728Master\u4e0a\u6267\u884ckubeadm\u547d\u4ee4\u65f6\u8f93\u51fa\u7684\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u4e32<\/p>\n<pre class=\"post-pre\"><code>kubeadm join 192.168.120.225:6443 --token jsw3w2.ce3h3symthg4n8cb --discovery-token-ca-cert-hash sha256:38977016e9273b8140c50e0f40a06f70ff85c430ebe4c40bfb18d60ac3509aae\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>kubeadm join --token rz20b8.xo9edptiky33606n --discovery-token-unsafe-skip-ca-verification 192.168.120.225:6443\r\n<\/code><\/pre>\n<p>\u6267\u884c\u793a\u4f8b<br \/>\n\u5927\u7ea6 2 \u79d2\u949f\u5c31\u4f1a\u7ed3\u675f<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubeadm-node01 ~]# kubeadm join 192.168.120.225:6443 --token jsw3w2.ce3h3symthg4n8cb --discovery-token-ca-cert-hash sha256:38977016e9273b8140c50e0f40a06f70ff85c430ebe4c40bfb18d60ac3509aae\r\n[preflight] Running pre-flight checks.\r\n        [WARNING Hostname]: hostname \"sugi-kubeadm-node01.localdomain\" could not be reached\r\n        [WARNING Hostname]: hostname \"sugi-kubeadm-node01.localdomain\" lookup sugi-kubeadm-node01.localdomain on 8.8.8.8:53: no such host\r\n        [WARNING FileExisting-crictl]: crictl not found in system path\r\nSuggestion: go get github.com\/kubernetes-incubator\/cri-tools\/cmd\/crictl\r\n[discovery] Trying to connect to API Server \"192.168.120.225:6443\"\r\n[discovery] Created cluster-info discovery client, requesting info from \"https:\/\/192.168.120.225:6443\"\r\n[discovery] Requesting info from \"https:\/\/192.168.120.225:6443\" again to validate TLS against the pinned public key\r\n[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server \"192.168.120.225:6443\"\r\n[discovery] Successfully established connection with API Server \"192.168.120.225:6443\"\r\n\r\nThis node has joined the cluster:\r\n* Certificate signing request was sent to master and a response\r\n  was received.\r\n* The Kubelet was informed of the new secure connection details.\r\n\r\nRun 'kubectl get nodes' on the master to see this node join the cluster.\r\n<\/code><\/pre>\n<p>\u5728Node\u670d\u52a1\u5668\u4e0a\u4e5f\u6b63\u5728\u8fd0\u884c\u5bb9\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes110-node01 ~]# docker ps\r\nCONTAINER ID        IMAGE                                                                                                 COMMAND                  CREATED              STATUS              PORTS               NAMES\r\n6799376b5fa1        2b736d06ca4c                                                                                          \"\/opt\/bin\/flanneld...\"   17 seconds ago       Up 17 seconds                           k8s_kube-flannel_kube-flannel-ds-d92qj_kube-system_436dce14-4ae3-11e8-bbe9-0050569817ee_0\r\n35385775d1dd        k8s.gcr.io\/kube-proxy-amd64@sha256:c7036a8796fd20c16cb3b1cef803a8e980598bff499084c29f3c759bdb429cd2   \"\/usr\/local\/bin\/ku...\"   About a minute ago   Up About a minute                       k8s_kube-proxy_kube-proxy-khhwf_kube-system_436d9ed6-4ae3-11e8-bbe9-0050569817ee_0\r\n3f9179965ccf        k8s.gcr.io\/pause-amd64:3.1                                                                            \"\/pause\"                 About a minute ago   Up About a minute                       k8s_POD_kube-flannel-ds-d92qj_kube-system_436dce14-4ae3-11e8-bbe9-0050569817ee_0\r\nefde8e22d079        k8s.gcr.io\/pause-amd64:3.1                                                                            \"\/pause\"                 About a minute ago   Up About a minute                       k8s_POD_kube-proxy-khhwf_kube-system_436d9ed6-4ae3-11e8-bbe9-0050569817ee_0\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u72b6\u6001<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes110-master01 ~]# kubectl get nodes -o wide\r\nNAME                                      STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME\r\nsugi-kubernetes110-master01.localdomain   Ready     master    6m        v1.10.2   &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.21.1.el7.x86_64   docker:\/\/1.13.1\r\nsugi-kubernetes110-node01.localdomain     Ready     &lt;none&gt;    1m        v1.10.2   &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.21.1.el7.x86_64   docker:\/\/1.13.1\r\nsugi-kubernetes110-node02.localdomain     Ready     &lt;none&gt;    1m        v1.10.2   &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.21.1.el7.x86_64   docker:\/\/1.13.1\r\n<\/code><\/pre>\n<p>\u54b1\u4eec\u786e\u8ba4\u4e00\u4e0b\u8fd9\u4e9b\u8c46\u835a\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@sugi-kubernetes110-master01 ~]# kubectl get pods --all-namespaces\r\nNAMESPACE     NAME                                                              READY     STATUS    RESTARTS   AGE\r\nkube-system   etcd-sugi-kubernetes110-master01.localdomain                      1\/1       Running   0          5m\r\nkube-system   kube-apiserver-sugi-kubernetes110-master01.localdomain            1\/1       Running   0          6m\r\nkube-system   kube-controller-manager-sugi-kubernetes110-master01.localdomain   1\/1       Running   0          6m\r\nkube-system   kube-dns-86f4d74b45-bvps2                                         3\/3       Running   0          6m\r\nkube-system   kube-flannel-ds-5tgh7                                             1\/1       Running   0          1m\r\nkube-system   kube-flannel-ds-d92qj                                             1\/1       Running   0          2m\r\nkube-system   kube-flannel-ds-rb6ll                                             1\/1       Running   0          4m\r\nkube-system   kube-proxy-khhwf                                                  1\/1       Running   0          2m\r\nkube-system   kube-proxy-l8pbk                                                  1\/1       Running   0          1m\r\nkube-system   kube-proxy-zblxq                                                  1\/1       Running   0          6m\r\nkube-system   kube-scheduler-sugi-kubernetes110-master01.localdomain            1\/1       Running   0          5m\r\n<\/code><\/pre>\n<p>\u5df2\u7ecf\u5b8c\u6210\u4e86\u4e0a\u8ff0\u7684\u6784\u5efa<\/p>\n<h1>\u8bf7\u63d0\u4f9b\u53c2\u8003\u94fe\u63a5<\/h1>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528 kubeadm \u66f4\u6539 Pod \u7f51\u7edc CIDR \u5728\u4f7f\u7528kubeadm\u5b89\u88c5kubernetes\u96c6\u7fa4\u65f6\uff0c\u5982\u679c\u8981 [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-36246","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr - Blog - Silicon Cloud<\/title>\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.silicloud.com\/zh\/blog\/\u4f7f\u7528-kubeadm-\u66f4\u6539-pod-network-cidr\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr\" \/>\n<meta property=\"og:description\" content=\"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod \u7f51\u7edc CIDR \u5728\u4f7f\u7528kubeadm\u5b89\u88c5kubernetes\u96c6\u7fa4\u65f6\uff0c\u5982\u679c\u8981 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528-kubeadm-\u66f4\u6539-pod-network-cidr\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-06T16:45:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T02:06:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d281137434c4406c3ee2b\/3-0.png\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/\",\"name\":\"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-02-06T16:45:41+00:00\",\"dateModified\":\"2024-04-30T02:06:54+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr - Blog - Silicon Cloud","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.silicloud.com\/zh\/blog\/\u4f7f\u7528-kubeadm-\u66f4\u6539-pod-network-cidr\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr","og_description":"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod \u7f51\u7edc CIDR \u5728\u4f7f\u7528kubeadm\u5b89\u88c5kubernetes\u96c6\u7fa4\u65f6\uff0c\u5982\u679c\u8981 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528-kubeadm-\u66f4\u6539-pod-network-cidr\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-02-06T16:45:41+00:00","article_modified_time":"2024-04-30T02:06:54+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d281137434c4406c3ee2b\/3-0.png"}],"author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"12 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/","name":"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-02-06T16:45:41+00:00","dateModified":"2024-04-30T02:06:54+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528 kubeadm \u66f4\u6539 Pod-network-cidr"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-kubeadm-%e6%9b%b4%e6%94%b9-pod-network-cidr%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=36246"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36246\/revisions"}],"predecessor-version":[{"id":91264,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36246\/revisions\/91264"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=36246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=36246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=36246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}