{"id":93,"date":"2024-03-02T09:47:00","date_gmt":"2024-03-02T01:47:00","guid":{"rendered":"https:\/\/www.xueyaa.top\/?p=93"},"modified":"2026-03-08T17:34:59","modified_gmt":"2026-03-08T09:34:59","slug":"k8s%e9%9b%86%e7%be%a4%e6%90%ad%e5%bb%ba%e4%b8%8e%e5%9f%ba%e7%a1%80%e4%bd%bf%e7%94%a8%ef%bc%88%e4%b8%80%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.xueyaa.top\/?p=93","title":{"rendered":"k8s\u96c6\u7fa4\u642d\u5efa\u4e0e\u57fa\u7840\u4f7f\u7528\uff08\u4e00\uff09"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"RLQP0\">1.k8s\u6982\u8ff0<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aHR07\">1.1\u4ec0\u4e48\u662fk8s<\/h2>\n\n\n\n<pre id=\"pPxcm\" class=\"wp-block-code\"><code>\u53c2\u8003\u94fe\u63a5\uff08\u5b98\u7f51\uff09:\n\thttps:&#47;&#47;kubernetes.io\/zh-cn\/\n\t\nKubernetes\u4e5f\u79f0\u4e3aK8s\uff0c\u662f\u7528\u4e8e\u81ea\u52a8\u90e8\u7f72\u3001\u6269\u7f29\u548c\u7ba1\u7406\u5bb9\u5668\u5316\u5e94\u7528\u7a0b\u5e8f\u7684\u5f00\u6e90\u7cfb\u7edf\u3002\n\n\u5b83\u5c06\u7ec4\u6210\u5e94\u7528\u7a0b\u5e8f\u7684\u5bb9\u5668\u7ec4\u5408\u6210\u903b\u8f91\u5355\u5143\uff0c\u4ee5\u4fbf\u4e8e\u7ba1\u7406\u548c\u670d\u52a1\u53d1\u73b0\u3002Kubernetes \u6e90\u81ea Google 15\u5e74\u751f\u4ea7\u73af\u5883\u7684\u8fd0\u7ef4\u7ecf\u9a8c\uff0c\u540c\u65f6\u51dd\u805a\u4e86\u793e\u533a\u7684\u6700\u4f73\u521b\u610f\u548c\u5b9e\u8df5\u3002\n\nGoogle\u6bcf\u5468\u8fd0\u884c\u6570\u5341\u4ebf\u4e2a\u5bb9\u5668\uff0cKubernetes\u57fa\u4e8e\u4e0e\u4e4b\u76f8\u540c\u7684\u539f\u5219\u6765\u8bbe\u8ba1\uff0c\u80fd\u591f\u5728\u4e0d\u6269\u5f20\u8fd0\u7ef4\u56e2\u961f\u7684\u60c5\u51b5\u4e0b\u8fdb\u884c\u89c4\u6a21\u6269\u5c55\u3002\n\n\u65e0\u8bba\u662f\u672c\u5730\u6d4b\u8bd5\uff0c\u8fd8\u662f\u8de8\u56fd\u516c\u53f8\uff0cKubernetes\u7684\u7075\u6d3b\u6027\u90fd\u80fd\u8ba9\u4f60\u5728\u5e94\u5bf9\u590d\u6742\u7cfb\u7edf\u65f6\u5f97\u5fc3\u5e94\u624b\u3002\n\nKubernetes\u662f\u5f00\u6e90\u7cfb\u7edf\uff0c\u53ef\u4ee5\u81ea\u7531\u5730\u90e8\u7f72\u5728\u4f01\u4e1a\u5185\u90e8\uff0c\u79c1\u6709\u4e91\u3001\u6df7\u5408\u4e91\u6216\u516c\u6709\u4e91\uff0c\u8ba9\u60a8\u8f7b\u677e\u5730\u505a\u51fa\u5408\u9002\u7684\u9009\u62e9\u3002<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"jA1ch\">1.2k8s\u67b6\u6784<\/h2>\n\n\n\n<pre id=\"Yu88D\" class=\"wp-block-code\"><code>- master(\u4e3b\u4eba)| control plane(\u63a7\u5236\u9762\u677f)\n\t- etcd\n\t\t\u6570\u636e\u5e93\uff0c\u7528\u4e8e\u5b58\u50a8k8s\u96c6\u7fa4\u6570\u636e\u3002(\u5e76\u4e0d\u662fGoogle\u516c\u53f8\u5f00\u53d1,\u53ea\u662f\u7528etcd\u53bb\u505a\u5b58\u50a8)\n\t\t\n\t- api-server\uff1a\n\t\tk8s\u96c6\u7fa4\u63a7\u5236\u8bbf\u95ee\u5165\u53e3\u3002\n\t\t\n\t- scheduler:\n\t\t\u8c03\u5ea6\u5668\uff0c\u8d1f\u8d23\u8c03\u5ea6\u7684\u76f8\u5173\u5de5\u4f5c\u3002\n\t\t\n\t- controller manager\n\t\t\u8d1f\u8d23\u7ef4\u62a4K8S\u96c6\u7fa4\u72b6\u6001,\u7ba1\u7406\u63a7\u5236\u5668\u3002\n\n\n- slave(\u5974\u96b6)|worker(\u5de5\u4f5c\u8005)\n\t- kubelet\n\t\t\u8d1f\u8d23Pod\u751f\u547d\u5468\u671f\u53caworker\u8282\u70b9\u72b6\u6001\u76d1\u63a7\u5e76\u5468\u671f\u6027\u4e0a\u62a5\u7ed9api-server\u7ec4\u4ef6\u3002\n\t\t\n\t- kube-proxy\n\t\t\u8d1f\u8d23\u4ee3\u7406Pod\u8bf7\u6c42\uff0c\u5b9e\u73b0\u96c6\u7fa4\u5185\u90e8\u6216\u96c6\u7fa4\u5916\u90e8\u7684\u8d1f\u8f7d\u5747\u8861\u548c\u670d\u52a1\u53d1\u73b0\u3002\n\n\n- CNI(Container Network Interface):\n\t\u8d1f\u8d23k8s\u96c6\u7fa4worker\u8282\u70b9\u7684Pod\u7f51\u7edc\u901a\u4fe1\u3002<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"c0ggy\">2.k8s\u73af\u5883\u51c6\u5907\u53ca\u57fa\u7840\u4f18\u5316<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fBWK6\">2.1\u73af\u5883\u51c6\u5907<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>\u4e3b\u673a\u540d<\/strong><\/td><td><strong>IP\u5730\u5740<\/strong><\/td><td><strong>\u64cd\u4f5c\u7cfb\u7edf<\/strong><\/td><td><strong>\u786c\u4ef6\u914d\u7f6e<\/strong><\/td><\/tr><tr><td>master231<\/td><td>10.0.0.231<\/td><td>Ubuntu 22.04 LTS<\/td><td>2c+\uff0c4G+\uff0c50G+<\/td><\/tr><tr><td>worker232<\/td><td>10.0.0.232<\/td><td>Ubuntu 22.04 LTS<\/td><td>2c+\uff0c4G+\uff0c50G+<\/td><\/tr><tr><td>worker233<\/td><td>10.0.0.233<\/td><td>Ubuntu 22.04 LTS<\/td><td>2c+\uff0c4G+\uff0c50G+<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hNyGK\">2.2Linux\u57fa\u7840\u4f18\u5316<\/h2>\n\n\n\n<pre id=\"FTuDB\" class=\"wp-block-code\"><code>1.\u5173\u95edswap\u5206\u533a\nswapoff -a &amp;&amp; sysctl -w vm.swappiness=0  # \u4e34\u65f6\u5173\u95ed\uff0c\u670d\u52a1\u5668\u91cd\u542f\u540e\u914d\u7f6e\u5931\u6548\u3002\nsed -ri '\/^&#91;^#]*swap\/s@^@#@' \/etc\/fstab  # \u57fa\u4e8e\u914d\u7f6e\u6587\u4ef6\u5173\u95ed\uff0c\u91cd\u542f\u540e\u4f9d\u65e7\u6709\u6548\u3002\nsystemctl  mask  swap.target  # ubt\/debian\u7cfb\u7edf\uff0c\u8fd8\u9700\u6267\u884c\u8fd9\u4e2a\u547d\u4ee4\n\n\n2.\u786e\u4fdd\u5404\u4e2a\u8282\u70b9MAC\u5730\u5740\u6216product_uuid\u552f\u4e00\nifconfig  ens33  | grep ether | awk '{print $2}'\ncat \/sys\/class\/dmi\/id\/product_uuid \n\n    \u6e29\u99a8\u63d0\u793a:\n        \u4e00\u822c\u6765\u8bb2\uff0c\u786c\u4ef6\u8bbe\u5907\u4f1a\u62e5\u6709\u552f\u4e00\u7684\u5730\u5740\uff0c\u4f46\u662f\u6709\u4e9b\u865a\u62df\u673a\u7684\u5730\u5740\u53ef\u80fd\u4f1a\u91cd\u590d\u3002 \n        Kubernetes\u4f7f\u7528\u8fd9\u4e9b\u503c\u6765\u552f\u4e00\u786e\u5b9a\u96c6\u7fa4\u4e2d\u7684\u8282\u70b9\u3002 \u5982\u679c\u8fd9\u4e9b\u503c\u5728\u6bcf\u4e2a\u8282\u70b9\u4e0a\u4e0d\u552f\u4e00\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u5b89\u88c5\u5931\u8d25\u3002\n\n\t3.\u68c0\u67e5\u7f51\u7edc\u8282\u70b9\u662f\u5426\u4e92\u901a\n\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u68c0\u67e5\u4f60\u7684k8s\u96c6\u7fa4\u5404\u8282\u70b9\u662f\u5426\u4e92\u901a\uff0c\u53ef\u4ee5\u4f7f\u7528ping\u547d\u4ee4\u6765\u6d4b\u8bd5\u3002\n\nping baidu.com -c 10 \n\n\t4.\u5141\u8bb8iptable\u68c0\u67e5\u6865\u63a5\u6d41\u91cf\ncat &lt;&lt;EOF | tee \/etc\/modules-load.d\/k8s.conf\nbr_netfilter\nEOF\n\ncat &lt;&lt;EOF | tee \/etc\/sysctl.d\/k8s.conf\nnet.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1\nEOF\n\nsysctl --system\n\t\n\t5.\u68c0\u67e5\u7aef\u53e3\u662f\u5426\u88ab\u5360\u7528\n\u53c2\u8003: https:\/\/kubernetes.io\/zh-cn\/docs\/reference\/networking\/ports-and-protocols\/\n\n\t6.Linux\u5185\u6838\u4f18\u5316\ncat > \/etc\/sysctl.d\/k8s.conf &lt;&lt;'EOF'\nnet.ipv4.ip_forward = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.bridge.bridge-nf-call-ip6tables = 1\nnet.ipv6.conf.all.disable_ipv6 = 1\nfs.may_detach_mounts = 1\nvm.overcommit_memory=1\nvm.panic_on_oom=0\nfs.inotify.max_user_watches=89100\nfs.file-max=52706963\nfs.nr_open=52706963\nnet.netfilter.nf_conntrack_max=2310720\nnet.ipv4.tcp_keepalive_time = 600\nnet.ipv4.tcp_keepalive_probes = 3\nnet.ipv4.tcp_keepalive_intvl =15\nnet.ipv4.tcp_max_tw_buckets = 36000\nnet.ipv4.tcp_tw_reuse = 1\nnet.ipv4.tcp_max_orphans = 327680\nnet.ipv4.tcp_orphan_retries = 3\nnet.ipv4.tcp_syncookies = 1\nnet.ipv4.tcp_max_syn_backlog = 16384\nnet.ipv4.ip_conntrack_max = 65536\nnet.ipv4.tcp_max_syn_backlog = 16384\nnet.ipv4.tcp_timestamps = 0\nnet.core.somaxconn = 16384\nEOF\n\nsysctl --system<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wgsu5\">2.3\u5b89\u88c5ipvsadm\u4ee5\u5b9e\u73b0kube-proxy\u7684\u8d1f\u8f7d\u5747\u8861<\/h2>\n\n\n\n<pre id=\"pykfc\" class=\"wp-block-code\"><code>\t1 \u5b89\u88c5ipvsadm\u7b49\u76f8\u5173\u5de5\u5177\napt -y install ipvsadm ipset sysstat conntrack \n\n\t2 \u6240\u6709\u8282\u70b9\u521b\u5efa\u8981\u5f00\u673a\u81ea\u52a8\u52a0\u8f7d\u7684\u6a21\u5757\u914d\u7f6e\u6587\u4ef6\ncat &gt; \/etc\/modules-load.d\/ipvs.conf &lt;&lt; 'EOF'\nip_vs\nip_vs_lc\nip_vs_wlc\nip_vs_rr\nip_vs_wrr\nip_vs_lblc\nip_vs_lblcr\nip_vs_dh\nip_vs_sh\nip_vs_fo\nip_vs_nq\nip_vs_sed\nip_vs_ftp\nip_vs_sh\nnf_conntrack\nip_tables\nip_set\nxt_set\nipt_set\nipt_rpfilter\nipt_REJECT\nipip\nEOF<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"TouZ9\">2.4\u5b89\u88c5docker\u73af\u5883<\/h2>\n\n\n\n<pre id=\"s1CpJ\" class=\"wp-block-code\"><code>\t1 \u5b89\u88c5docker\u73af\u5883 \n\nwget http:\/\/192.168.21.253\/Resources\/Docker\/scripts\/oldboyedu-autoinstall-docker-docker-compose.tar.gz\ntar xf oldboyedu-autoinstall-docker-docker-compose.tar.gz \n.\/install-docker.sh i\n\n\n\t2 \u68c0\u67e5cgroup\u9a71\u52a8\u662f\u5426\u662fsystemd\n&#91;root@master231 ~]# docker info  | grep \"Cgroup Driver:\"\n Cgroup Driver: systemd\n\t\n&#91;root@worker232 ~]# docker info  | grep \"Cgroup Driver:\"\n Cgroup Driver: systemd\n\n&#91;root@worker233 ~]# docker info  | grep \"Cgroup Driver:\"\n Cgroup Driver: systemd<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"YFVUo\">2.5\u6240\u6709\u8282\u70b9\u5b89\u88c5kubeadm\uff0ckubelet\uff0ckubectl<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>\u8f6f\u4ef6\u5305\u540d\u79f0\\\u63cf\u8ff0<\/strong><\/td><td><strong>\u4f5c\u7528<\/strong><\/td><\/tr><tr><td>kubeadm<\/td><td>\u7528\u6765\u521d\u59cb\u5316K8S\u96c6\u7fa4\u7684\u5de5\u5177<\/td><\/tr><tr><td>kubelet<\/td><td>\u5e95\u5c42\u7528\u5230\u4e86\u9759\u6001Pod\u6280\u672f\u542f\u52a8master\u7ec4\u4ef6\u53caPod\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002<\/td><\/tr><tr><td>kubectl<\/td><td>\u7528\u6765\u4e0eK8S\u96c6\u7fa4\u901a\u4fe1\u7684\u547d\u4ee4\u884c\u5de5\u5177<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre id=\"KHZJv\" class=\"wp-block-code\"><code>\t1.\u8f6f\u4ef6\u5305\u8bf4\u660e(\u5982\u4e0a\u8868\u6240\u793a)\nkubeadm\u4e0d\u80fd\u5e2e\u4f60\u5b89\u88c5\u6216\u8005\u7ba1\u7406kubelet\u6216kubectl\uff0c\u6240\u4ee5\u4f60\u9700\u8981\u786e\u4fdd\u5b83\u4eec\u4e0e\u901a\u8fc7kubeadm\u5b89\u88c5\u7684\u63a7\u5236\u5e73\u9762(master)\u7684\u7248\u672c\u76f8\u5339\u914d\u3002 \n\u5982\u679c\u4e0d\u8fd9\u6837\u505a\uff0c\u5219\u5b58\u5728\u53d1\u751f\u7248\u672c\u504f\u5dee\u7684\u98ce\u9669\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4e00\u4e9b\u9884\u6599\u4e4b\u5916\u7684\u9519\u8bef\u548c\u95ee\u9898\u3002 \n\n\u7136\u800c\uff0c\u63a7\u5236\u5e73\u9762\u4e0ekubelet\u95f4\u7684\u76f8\u5dee\u4e00\u4e2a\u6b21\u8981\u7248\u672c\u4e0d\u4e00\u81f4\u662f\u652f\u6301\u7684\uff0c\u4f46kubelet\u7684\u7248\u672c\u4e0d\u53ef\u4ee5\u8d85\u8fc7\"API SERVER\"\u7684\u7248\u672c\u3002 \n\u4f8b\u5982\uff0c1.7.0\u7248\u672c\u7684kubelet\u53ef\u4ee5\u5b8c\u5168\u517c\u5bb91.8.0\u7248\u672c\u7684\"API SERVER\"\uff0c\u53cd\u4e4b\u5219\u4e0d\u53ef\u4ee5\u3002\n\n\n\t2 K8S\u6240\u6709\u8282\u70b9\u914d\u7f6e\u8f6f\u4ef6\u6e90\napt-get update &amp;&amp; apt-get install -y apt-transport-https\ncurl https:\/\/mirrors.aliyun.com\/kubernetes\/apt\/doc\/apt-key.gpg | apt-key add - \ncat &lt;&lt;EOF >\/etc\/apt\/sources.list.d\/kubernetes.list\ndeb https:\/\/mirrors.aliyun.com\/kubernetes\/apt\/ kubernetes-xenial main\nEOF\napt-get update\n\n\n\t3 \u67e5\u770b\u4e00\u4e0b\u5f53\u524d\u73af\u5883\u652f\u6301\u7684k8s\u7248\u672c\n&#91;root@master231 ~]# apt-cache madison kubeadm\n   kubeadm |  1.28.2-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   kubeadm |  1.28.1-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   kubeadm |  1.28.0-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   ...\n   kubeadm | 1.23.17-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   kubeadm | 1.23.16-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   kubeadm | 1.23.15-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   kubeadm | 1.23.14-00 | https:\/\/mirrors.aliyun.com\/kubernetes\/apt kubernetes-xenial\/main amd64 Packages\n   ...\n\n\t4 \u6240\u6709\u8282\u70b9\u5b89\u88c5 kubelet kubeadm kubectl\napt-get -y install kubelet=1.23.17-00 kubeadm=1.23.17-00 kubectl=1.23.17-00\n \n\t5 \u68c0\u67e5\u5404\u7ec4\u4ef6\u7248\u672c \n&#91;root@master231 ~]# kubeadm version\nkubeadm version: &amp;version.Info{Major:\"1\", Minor:\"23\", GitVersion:\"v1.23.17\", GitCommit:\"953be8927218ec8067e1af2641e540238ffd7576\", GitTreeState:\"clean\", BuildDate:\"2023-02-22T13:33:14Z\", GoVersion:\"go1.19.6\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\n&#91;root@master231 ~]# kubectl version\nClient Version: version.Info{Major:\"1\", Minor:\"23\", GitVersion:\"v1.23.17\", GitCommit:\"953be8927218ec8067e1af2641e540238ffd7576\", GitTreeState:\"clean\", BuildDate:\"2023-02-22T13:34:27Z\", GoVersion:\"go1.19.6\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\n&#91;root@master231 ~]# kubelet --version\nKubernetes v1.23.17\n\n\n&#91;root@worker232 ~]# kubeadm version\nkubeadm version: &amp;version.Info{Major:\"1\", Minor:\"23\", GitVersion:\"v1.23.17\", GitCommit:\"953be8927218ec8067e1af2641e540238ffd7576\", GitTreeState:\"clean\", BuildDate:\"2023-02-22T13:33:14Z\", GoVersion:\"go1.19.6\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\n&#91;root@worker232 ~]# kubectl version\nClient Version: version.Info{Major:\"1\", Minor:\"23\", GitVersion:\"v1.23.17\", GitCommit:\"953be8927218ec8067e1af2641e540238ffd7576\", GitTreeState:\"clean\", BuildDate:\"2023-02-22T13:34:27Z\", GoVersion:\"go1.19.6\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\n&#91;root@worker232 ~]# kubelet --version\nKubernetes v1.23.17\n\n&#91;root@worker233 ~]# kubeadm version\nkubeadm version: &amp;version.Info{Major:\"1\", Minor:\"23\", GitVersion:\"v1.23.17\", GitCommit:\"953be8927218ec8067e1af2641e540238ffd7576\", GitTreeState:\"clean\", BuildDate:\"2023-02-22T13:33:14Z\", GoVersion:\"go1.19.6\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\n&#91;root@worker233 ~]# kubectl version\nClient Version: version.Info{Major:\"1\", Minor:\"23\", GitVersion:\"v1.23.17\", GitCommit:\"953be8927218ec8067e1af2641e540238ffd7576\", GitTreeState:\"clean\", BuildDate:\"2023-02-22T13:34:27Z\", GoVersion:\"go1.19.6\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\nThe connection to the server localhost:8080 was refused - did you specify the right host or port?\n&#91;root@worker233 ~]# kubelet --version\nKubernetes v1.23.17\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ECfxL\">2.6\u65f6\u533a\u4f18\u5316\u53ca\u5feb\u7167<\/h2>\n\n\n\n<pre id=\"st84c\" class=\"wp-block-code\"><code>\t1.\u68c0\u67e5\u65f6\u533a\n&#91;root@master231 ~]# ln -svf \/usr\/share\/zoneinfo\/Asia\/Shanghai \/etc\/localtime \n'\/etc\/localtime' -> '\/usr\/share\/zoneinfo\/Asia\/Shanghai'\n&#91;root@master231 ~]# ll \/etc\/localtime \nlrwxrwxrwx 1 root root 33 Feb 10 11:26 \/etc\/localtime -> \/usr\/share\/zoneinfo\/Asia\/Shanghai\n&#91;root@master231 ~]# date -R\nTue, 06 Jan 2026 10:40:14 +0800\n\n\t2.\u9a8c\u8bc1cpu\u6838\u5fc3\u6570 \n&#91;root@master231 ~]# lscpu  | grep ^CPU\\(s\\)\nCPU(s):                               2\n\n&#91;root@worker232 ~]# lscpu  | grep ^CPU\\(s\\)\nCPU(s):                               2\n\n&#91;root@worker233 ~]# lscpu  | grep ^CPU\\(s\\)\nCPU(s):                               2\n\n\t3.\u91cd\u542f\u64cd\u4f5c\u7cfb\u7edf\u5373\u53ef\nreboot \n\n\t4.\u9a8c\u8bc1\u52a0\u8f7d\u7684\u6a21\u5757\nlsmod | grep --color=auto -e ip_vs -e nf_conntrack\nfree -h\n\n\u6e29\u99a8\u63d0\u793a:\n\tLinux kernel 4.19+\u7248\u672c\u5df2\u7ecf\u5c06\u4e4b\u524d\u7684\"nf_conntrack_ipv4\"\u6a21\u5757\u66f4\u540d\u4e3a\"nf_conntrack\"\u6a21\u5757\u54df~\n\n\t5.\u5173\u673a\u62cd\u5feb\u7167<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"uUdYJ\">3.k8s\u96c6\u7fa4\u90e8\u7f72<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Cg4Hi\">3.1\u90e8\u7f72master\u7ec4\u4ef6<\/h2>\n\n\n\n<pre id=\"XiqBv\" class=\"wp-block-code\"><code>\t1.\u63d0\u524d\u5bfc\u5165\u955c\u50cf\n&#91;root@master231 ~]# wget http:\/\/192.168.21.253\/Resources\/Kubernetes\/K8S%20Cluster\/kubeadm\/images\/oldboyedu-master-1.23.17.tar.gz\n\n&#91;root@master231 ~]# docker load -i oldboyedu-master-1.23.17.tar.gz \n\n&#91;root@master231 ~]# docker image ls\nREPOSITORY                                                        TAG        IMAGE ID       CREATED         SIZE\nregistry.aliyuncs.com\/google_containers\/kube-apiserver            v1.23.17   62bc5d8258d6   23 months ago   130MB\nregistry.aliyuncs.com\/google_containers\/kube-controller-manager   v1.23.17   1dab4fc7b6e0   23 months ago   120MB\nregistry.aliyuncs.com\/google_containers\/kube-scheduler            v1.23.17   bc6794cb54ac   23 months ago   51.9MB\nregistry.aliyuncs.com\/google_containers\/kube-proxy                v1.23.17   f21c8d21558c   23 months ago   111MB\nregistry.aliyuncs.com\/google_containers\/etcd                      3.5.6-0    fce326961ae2   2 years ago     299MB\nregistry.aliyuncs.com\/google_containers\/coredns                   v1.8.6     a4ca41631cc7   3 years ago     46.8MB\nregistry.aliyuncs.com\/google_containers\/pause                     3.6        6270bb605e12   3 years ago     683kB\n\n\t2.\u4f7f\u7528kubeadm\u521d\u59cb\u5316master\u8282\u70b9\n&#91;root@master231 ~]# kubeadm init --kubernetes-version=v1.23.17 --image-repository registry.aliyuncs.com\/google_containers  --pod-network-cidr=10.100.0.0\/16 --service-cidr=10.200.0.0\/16  --service-dns-domain=oldboyedu.com\n...\n\nYour Kubernetes control-plane has initialized successfully!\n\nTo start using your cluster, you need to run the following as a regular user:\n\n  mkdir -p $HOME\/.kube\n  sudo cp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\n  sudo chown $(id -u):$(id -g) $HOME\/.kube\/config\n\nAlternatively, if you are the root user, you can run:\n\n  export KUBECONFIG=\/etc\/kubernetes\/admin.conf\n\nYou should now deploy a pod network to the cluster.\nRun \"kubectl apply -f &#91;podnetwork].yaml\" with one of the options listed at:\n  https:&#47;&#47;kubernetes.io\/docs\/concepts\/cluster-administration\/addons\/\n\nThen you can join any number of worker nodes by running the following on each as root:\n\nkubeadm join  10.0.0.231:6443  --token dnc6v7.0c2a0yd101h24lzx \\\n    --discovery-token-ca-cert-hash sha256:8dacfe663585bb1c36023aff0ceb991ceae9f833a50245fdd63001e26bd61013 \n\n\u76f8\u5173\u53c2\u6570\u8bf4\u660e:\n\t--kubernetes-version:\n\t\t\u6307\u5b9aK8S master\u7ec4\u4ef6\u7684\u7248\u672c\u53f7\u3002\n\t\t\n\t--image-repository:\n\t\t\u6307\u5b9a\u4e0b\u8f7dk8s master\u7ec4\u4ef6\u7684\u955c\u50cf\u4ed3\u5e93\u5730\u5740\u3002\n\t\t\n\t--pod-network-cidr:\n\t\t\u6307\u5b9aPod\u7684\u7f51\u6bb5\u5730\u5740\u3002\n\t\t\n\t--service-cidr:\n\t\t\u6307\u5b9aSVC\u7684\u7f51\u6bb5\n\n\t--service-dns-domain:\n\t\t\u6307\u5b9aservice\u7684\u57df\u540d\u3002\u82e5\u4e0d\u6307\u5b9a\uff0c\u9ed8\u8ba4\u4e3a\"cluster.local\"\u3002\n\t\t\n\n\u4f7f\u7528kubeadm\u521d\u59cb\u5316\u96c6\u7fa4\u65f6\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u5982\u4e0b\u7684\u8f93\u51fa\u4fe1\u606f:<\/code><\/pre>\n\n\n<p>[init]<\/p>\n\n\n\n<p>\u4f7f\u7528\u521d\u59cb\u5316\u7684K8S\u7248\u672c\u3002<\/p>\n\n\n<p>[preflight]<\/p>\n\n\n\n<p>\u4e3b\u8981\u662f\u505a\u5b89\u88c5K8S\u96c6\u7fa4\u7684\u524d\u7f6e\u5de5\u4f5c\uff0c\u6bd4\u5982\u4e0b\u8f7d\u955c\u50cf\uff0c\u8fd9\u4e2a\u65f6\u95f4\u53d6\u51b3\u4e8e\u4f60\u7684\u7f51\u901f\u3002<\/p>\n\n\n<p>[certs]<\/p>\n\n\n\n<p>\u751f\u6210\u8bc1\u4e66\u6587\u4ef6\uff0c\u9ed8\u8ba4\u5b58\u50a8\u5728&#8221;\/etc\/kubernetes\/pki&#8221;\u76ee\u5f55\u54df\u3002<\/p>\n\n\n<p>[kubeconfig]<\/p>\n\n\n\n<p>\u751f\u6210K8S\u96c6\u7fa4\u7684\u9ed8\u8ba4\u914d\u7f6e\u6587\u4ef6\uff0c\u9ed8\u8ba4\u5b58\u50a8\u5728&#8221;\/etc\/kubernetes&#8221;\u76ee\u5f55\u54df\u3002<\/p>\n\n\n<p>[kubelet-start]<\/p>\n\n\n\n<p>\u542f\u52a8kubelet\uff0c \u73af\u5883\u53d8\u91cf\u9ed8\u8ba4\u5199\u5165:&#8221;\/var\/lib\/kubelet\/kubeadm-flags.env&#8221; \u914d\u7f6e\u6587\u4ef6\u9ed8\u8ba4\u5199\u5165:&#8221;\/var\/lib\/kubelet\/config.yaml&#8221;<\/p>\n\n\n<p>[control-plane]<\/p>\n\n\n\n<p>\u4f7f\u7528\u9759\u6001\u7684\u76ee\u5f55\uff0c\u9ed8\u8ba4\u7684\u8d44\u6e90\u6e05\u5355\u5b58\u653e\u5728:&#8221;\/etc\/kubernetes\/manifests&#8221;\u3002 \u6b64\u8fc7\u7a0b\u4f1a\u521b\u5efa\u9759\u6001Pod\uff0c\u5305\u62ec&#8221;kube-apiserver&#8221;\uff0c&#8221;kube-controller-manager&#8221;\u548c&#8221;kube-scheduler&#8221;<\/p>\n\n\n<p>[etcd]<\/p>\n\n\n\n<p>\u521b\u5efaetcd\u7684\u9759\u6001Pod\uff0c\u9ed8\u8ba4\u7684\u8d44\u6e90\u6e05\u5355\u5b58\u653e\u5728:&#8221;\/etc\/kubernetes\/manifests&#8221;<\/p>\n\n\n<p>[wait-control-plane]<\/p>\n\n\n\n<p>\u7b49\u5f85kubelet\u4ece\u8d44\u6e90\u6e05\u5355\u76ee\u5f55&#8221;\/etc\/kubernetes\/manifests&#8221;\u542f\u52a8\u9759\u6001Pod\u3002<\/p>\n\n\n<p>[apiclient]<\/p>\n\n\n\n<p>\u7b49\u5f85\u6240\u6709\u7684master\u7ec4\u4ef6\u6b63\u5e38\u8fd0\u884c\u3002<\/p>\n\n\n<p>[upload-config]<\/p>\n\n\n\n<p>\u521b\u5efa\u540d\u4e3a&#8221;kubeadm-config&#8221;\u7684ConfigMap\u5728&#8221;kube-system&#8221;\u540d\u79f0\u7a7a\u95f4\u4e2d\u3002<\/p>\n\n\n<p>[kubelet]<\/p>\n\n\n\n<p>\u521b\u5efa\u540d\u4e3a&#8221;kubelet-config-1.22&#8243;\u7684ConfigMap\u5728&#8221;kube-system&#8221;\u540d\u79f0\u7a7a\u95f4\u4e2d\uff0c\u5176\u4e2d\u5305\u542b\u96c6\u7fa4\u4e2dkubelet\u7684\u914d\u7f6e<\/p>\n\n\n<p>[upload-certs]<\/p>\n\n\n\n<p>\u8df3\u8fc7\u6b64\u8282\u70b9\uff0c\u8be6\u60c5\u8bf7\u53c2\u8003&#8221;&#8211;upload-certs&#8221;<\/p>\n\n\n<p>[mark-control-plane]<\/p>\n\n\n\n<p>\u6807\u8bb0\u63a7\u5236\u9762\u677f\uff0c\u5305\u62ec\u6253\u6807\u7b7e\u548c\u6c61\u70b9\uff0c\u76ee\u7684\u662f\u4e3a\u4e86\u6807\u8bb0master\u8282\u70b9\u3002<\/p>\n\n\n<p>[bootstrap-token]<\/p>\n\n\n\n<p>\u521b\u5efatoken\u53e3\u4ee4\uff0c\u4f8b\u5982:&#8221;kbkgsa.fc97518diw8bdqid&#8221;\u3002 \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u8fd9\u4e2a\u53e3\u4ee4\u5c06\u6765\u5728\u52a0\u5165\u96c6\u7fa4\u8282\u70b9\u65f6\u5f88\u6709\u7528\uff0c\u800c\u4e14\u5bf9\u4e8eRBAC\u63a7\u5236\u4e5f\u5f88\u6709\u7528\u5904\u54df\u3002<\/p>\n\n\n<p>[kubelet-finalize]<\/p>\n\n\n\n<p>\u66f4\u65b0kubelet\u7684\u8bc1\u4e66\u6587\u4ef6\u4fe1\u606f<\/p>\n\n\n<p>[addons]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ZTlvn\">3.2\u90e8\u7f72worker\u7ec4\u4ef6<\/h2>\n\n\n\n<pre id=\"QrNfx\" class=\"wp-block-code\"><code>\t1.\u63d0\u524d\u5bfc\u5165\u955c\u50cf\n&#91;root@worker232 ~]# wget http:\/\/192.168.21.253\/Resources\/Kubernetes\/K8S%20Cluster\/kubeadm\/images\/oldboyedu-slave-1.23.17.tar.gz\n\n&#91;root@worker232 ~]# docker load -i oldboyedu-slave-1.23.17.tar.gz \n\n&#91;root@worker232 ~]# docker image ls\nREPOSITORY                                           TAG        IMAGE ID       CREATED       SIZE\nregistry.aliyuncs.com\/google_containers\/kube-proxy   v1.23.17   f21c8d21558c   2 years ago   111MB\nregistry.aliyuncs.com\/google_containers\/coredns      v1.8.6     a4ca41631cc7   3 years ago   46.8MB\nregistry.aliyuncs.com\/google_containers\/pause        3.6        6270bb605e12   3 years ago   683kB\n\n \n&#91;root@worker233 ~]# wget http:\/\/192.168.21.253\/Resources\/Kubernetes\/K8S%20Cluster\/kubeadm\/images\/oldboyedu-slave-1.23.17.tar.gz\n\n&#91;root@worker233 ~]# docker load -i oldboyedu-slave-1.23.17.tar.gz\n\n&#91;root@worker233 ~]# docker image ls\nREPOSITORY                                           TAG        IMAGE ID       CREATED       SIZE\nregistry.aliyuncs.com\/google_containers\/kube-proxy   v1.23.17   f21c8d21558c   2 years ago   111MB\nregistry.aliyuncs.com\/google_containers\/coredns      v1.8.6     a4ca41631cc7   3 years ago   46.8MB\nregistry.aliyuncs.com\/google_containers\/pause        3.6        6270bb605e12   3 years ago   683kB\n\n\n\t2.\u5c06worker\u8282\u70b9\u52a0\u5165\u5230master\u96c6\u7fa4\uff08\u6ce8\u610f\uff0c\u4e0d\u8981\u590d\u5236\u6211\u7684\uff0c\u800c\u662f\u6839\u636e\u4f60\u4e0a\u4e00\u6b65master\u751f\u6210\u7684token\u52a0\u5165\u96c6\u7fa4\uff09\n&#91;root@worker232 ~]# kubeadm join  10.0.0.231:6443  --token dnc6v7.0c2a0yd101h24lzx \\\n    --discovery-token-ca-cert-hash sha256:8dacfe663585bb1c36023aff0ceb991ceae9f833a50245fdd63001e26bd61013 \n\n\n&#91;root@worker233 ~]# kubeadm join  10.0.0.231:6443  --token dnc6v7.0c2a0yd101h24lzx \\\n    --discovery-token-ca-cert-hash sha256:8dacfe663585bb1c36023aff0ceb991ceae9f833a50245fdd63001e26bd61013\n\n\n\t3.\u9a8c\u8bc1worker\u8282\u70b9\u662f\u5426\u52a0\u5165\u6210\u529f\n&#91;root@master231 ~]# kubectl get no\nNAME        STATUS     ROLES                  AGE    VERSION\nmaster231   NotReady   control-plane,master   8m1s   v1.23.17\nworker232   NotReady   &lt;none&gt;                 42s    v1.23.17\nworker233   NotReady   &lt;none&gt;                 38s    v1.23.17\n&#91;root@master231 ~]# kubectl get no -o wide\nNAME        STATUS     ROLES                  AGE    VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME\nmaster231   NotReady   control-plane,master   8m2s   v1.23.17   10.0.0.231    &lt;none&gt;        Ubuntu 22.04.4 LTS   5.15.0-119-generic   docker:\/\/20.10.24\nworker232   NotReady   &lt;none&gt;                 43s    v1.23.17   10.0.0.232    &lt;none&gt;        Ubuntu 22.04.4 LTS   5.15.0-119-generic   docker:\/\/20.10.24\nworker233   NotReady   &lt;none&gt;                 39s    v1.23.17   10.0.0.233    &lt;none&gt;        Ubuntu 22.04.4 LTS   5.15.0-119-generic   docker:\/\/20.10.24<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"McjlR\">3.3k8s\u6240\u6709\u8282\u70b9\u5173\u673a\u62cd\u5feb\u7167<\/h2>\n\n\n\n<pre id=\"aJsMI\" class=\"wp-block-code\"><code>\u53ef\u4ee5\u5220\u9664\u65e0\u7528\u7684\u8f6f\u4ef6\u5305\u540e\u518d\u5173\u673a\u62cd\u5feb\u7167\uff0c\u5efa\u8bae\u5feb\u7167\u540d\u79f0\u4e3a: \u2018k8s\u672a\u5b89\u88c5CNI\u63d2\u4ef6\u2019\u3002<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1.k8s\u6982\u8ff0 1.1\u4ec0\u4e48\u662fk8s 1.2k8s\u67b6\u6784 2.k8s\u73af\u5883\u51c6\u5907\u53ca\u57fa\u7840\u4f18\u5316 2.1\u73af\u5883\u51c6\u5907 \u4e3b\u673a\u540d I [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":95,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-93","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/posts\/93","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=93"}],"version-history":[{"count":1,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/posts\/93\/revisions"}],"predecessor-version":[{"id":96,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/posts\/93\/revisions\/96"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=\/wp\/v2\/media\/95"}],"wp:attachment":[{"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=93"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=93"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xueyaa.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}