{"id":45,"date":"2024-11-20T19:18:57","date_gmt":"2024-11-20T11:18:57","guid":{"rendered":"https:\/\/coiio.eu.org\/?p=45"},"modified":"2025-03-03T06:59:17","modified_gmt":"2025-03-02T22:59:17","slug":"vmware-ubuntu-%e5%ae%89%e8%a3%85kubernetes","status":"publish","type":"post","link":"https:\/\/coiio.eu.org\/?p=45","title":{"rendered":"vmware ubuntu \u5b89\u88c5kubernetes"},"content":{"rendered":"<div id=\"rendered-md\">\n<h2 id=\"1-vmware\u5b89\u88c5ubuntu\">1. vmware\u5b89\u88c5ubuntu<\/h2>\n<p>\u7565<\/p>\n<h2 id=\"2-\u5b89\u88c5docker\">2. \u5b89\u88c5docker<\/h2>\n<h3 id=\"21-\u4f7f\u7528\u56fd\u5185docker\u6e90\">2.1 \u4f7f\u7528\u56fd\u5185docker\u6e90<\/h3>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>$ <span class=\"hljs-built_in\">cat<\/span> \/etc\/docker\/daemon.json\r\n{\r\n    <span class=\"hljs-string\">\"exec-opts\"<\/span> : [<span class=\"hljs-string\">\"native.cgroupdriver=systemd\"<\/span>],\r\n\r\n    <span class=\"hljs-string\">\"registry-mirrors\"<\/span>: [\r\n        <span class=\"hljs-string\">\"https:\/\/18lpui8e.mirror.aliyuncs.com\"<\/span>,\r\n        <span class=\"hljs-string\">\"https:\/\/docker.unsee.tech\"<\/span>,\r\n        <span class=\"hljs-string\">\"https:\/\/dockerpull.org\"<\/span>\r\n    ]\r\n\r\n}<\/code><\/pre>\n<\/div>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>apt install -y docker.<span class=\"hljs-built_in\">io<\/span>\r\nsystemctl restart docker\r\nsystemctl <span class=\"hljs-built_in\">status<\/span> docker<\/code><\/pre>\n<\/div>\n<h3 id=\"22-\u7981\u7528swap\">2.2 \u7981\u7528swap<\/h3>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>swapoff -<span class=\"hljs-selector-tag\">a<\/span>\r\nsed -<span class=\"hljs-selector-tag\">i<\/span> <span class=\"hljs-string\">'\/swap\/ s\/^\\(.*\\)$\/#\\1\/g'<\/span> \/etc\/fstab<\/code><\/pre>\n<\/div>\n<h3 id=\"23-\u52a0\u8f7d\u5185\u6838\u6a21\u5757\">2.3 \u52a0\u8f7d\u5185\u6838\u6a21\u5757<\/h3>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-comment\"># \u4f7f\u7528 modprobe \u547d\u4ee4\u52a0\u8f7d\u4ee5\u4e0b\u5185\u6838\u6a21\u5757<\/span>\r\nmodprobe overlay\r\nmodprobe br_netfilter\r\n \r\n<span class=\"hljs-comment\"># \u6c38\u4e45\u52a0\u8f7d\u8fd9\u4e9b\u6a21\u5757<\/span>\r\n<span class=\"hljs-built_in\">tee<\/span> \/etc\/modules-load.d\/k8s.conf &lt;&lt;<span class=\"hljs-string\">EOF\r\noverlay\r\nbr_netfilter\r\nEOF<\/span>\r\n \r\n \r\n<span class=\"hljs-comment\"># \u4fee\u6539\u5185\u6838\u53c2\u6570\u3002\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\uff0c\u5e76\u4f7f\u7528 sysctl \u547d\u4ee4\u52a0\u8f7d\u53c2\u6570\u3002<\/span>\r\n \r\n<span class=\"hljs-built_in\">tee<\/span> \/etc\/sysctl.d\/k8s.conf &lt;&lt;<span class=\"hljs-string\">EOF\r\nnet.bridge.bridge-nf-call-ip6tables = 1 \r\nnet.bridge.bridge-nf-call-iptables = 1 \r\nnet.ipv4.ip_forward = 1 \r\nEOF<\/span>\r\n\r\nsysctl --system \r\n<\/code><\/pre>\n<\/div>\n<h3 id=\"24-\u4fee\u6539\u4e3b\u673a\u540d\u548c\u914d\u7f6ehost\u6587\u4ef6\">2.4 \u4fee\u6539\u4e3b\u673a\u540d\u548c\u914d\u7f6ehost\u6587\u4ef6<\/h3>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-comment\">#node\u8282\u70b9\u4fee\u6539\u6210\u5bf9\u5e94\u7684node\u540d\u79f0<\/span>\r\nhostnamectl hostname ubuntu-<span class=\"hljs-literal\">master<\/span><\/code><\/pre>\n<\/div>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>#\u4fee\u6539\/etc\/hosts, \u6587\u4ef6\u6700\u540e\u589e\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a\r\n\r\n<span class=\"hljs-number\">192.168.237.128<\/span> ubuntu-master\r\n<span class=\"hljs-number\">192.168.237.129<\/span> ubuntu-node1\r\n<span class=\"hljs-number\">192.168.237.130<\/span> ubuntu-node2\r\n<\/code><\/pre>\n<\/div>\n<h3 id=\"25-\u5b89\u88c5kubeadm\">2.5 \u5b89\u88c5kubeadm<\/h3>\n<h4 id=\"\u4f7f\u7528aliyun\u955c\u50cf\">\u4f7f\u7528aliyun\u955c\u50cf<\/h4>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>apt install -y apt-transport-https ca-certificates curl\r\n\r\ncurl https:<span class=\"hljs-regexp\">\/\/mi<\/span>rrors.aliyun.com<span class=\"hljs-regexp\">\/kubernetes\/<\/span>apt<span class=\"hljs-regexp\">\/doc\/<\/span>apt-key.gpg | sudo apt-key add -\r\n\r\ncat &lt;&lt;EOF | tee <span class=\"hljs-regexp\">\/etc\/<\/span>apt<span class=\"hljs-regexp\">\/sources.list.d\/<\/span>kubernetes.list\r\ndeb https:<span class=\"hljs-regexp\">\/\/mi<\/span>rrors.aliyun.com<span class=\"hljs-regexp\">\/kubernetes\/<\/span>apt\/ kubernetes-xenial main\r\nEOF\r\n\r\napt update<\/code><\/pre>\n<\/div>\n<h4 id=\"\u4f7f\u7528123-\u6216\u4e4b\u524d\u7684\u7248\u672c-124-\u4e4b\u540e\u7684\u7248\u672c\u4e0d\u652f\u6301docker\">\u4f7f\u75281.23 \u6216\u4e4b\u524d\u7684\u7248\u672c, 1.24 \u4e4b\u540e\u7684\u7248\u672c\u4e0d\u652f\u6301docker<\/h4>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-attribute\">apt<\/span> install -y kubeadm=<span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">3<\/span>-<span class=\"hljs-number\">00<\/span> kubelet=<span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">3<\/span>-<span class=\"hljs-number\">00<\/span> kubectl=<span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">3<\/span>-<span class=\"hljs-number\">00<\/span>\r\n\r\n<span class=\"hljs-attribute\">kubeadm<\/span> version\r\n<span class=\"hljs-attribute\">kubectl<\/span> version<\/code><\/pre>\n<\/div>\n<h4 id=\"\u4ecealiyun\u955c\u50cf\u4e0b\u8f7d\u76f8\u5173docker-image\u7136\u540e\u6253\u5305\u6210google\u955c\u50cf\u540d\">\u4ecealiyun\u955c\u50cf\u4e0b\u8f7d\u76f8\u5173docker image\uff0c\u7136\u540e\u6253\u5305\u6210google\u955c\u50cf\u540d!!!<\/h4>\n<ul>\n<li>\u83b7\u53d6image list<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-attribute\">clh<\/span>@ubuntu-master:~$ kubeadm config images list\r\n<span class=\"hljs-attribute\">I1120<\/span> <span class=\"hljs-number\">00<\/span>:<span class=\"hljs-number\">57<\/span>:<span class=\"hljs-number\">27<\/span>.<span class=\"hljs-number\">313592<\/span>   <span class=\"hljs-number\">14321<\/span> version.go:<span class=\"hljs-number\">255<\/span>] remote version is much newer: v1.<span class=\"hljs-number\">31<\/span>.<span class=\"hljs-number\">2<\/span>; falling back to: stable-<span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">23<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-apiserver:v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-controller-manager:v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-scheduler:v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-proxy:v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/pause:<span class=\"hljs-number\">3<\/span>.<span class=\"hljs-number\">6<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/etcd:<span class=\"hljs-number\">3<\/span>.<span class=\"hljs-number\">5<\/span>.<span class=\"hljs-number\">1<\/span>-<span class=\"hljs-number\">0<\/span>\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/coredns\/coredns:v1.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span>\r\n<span class=\"hljs-attribute\">clh<\/span>@ubuntu-master:~$<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u66ff\u6362\u5982\u4e0b\u811a\u672c\u7684image\u7248\u672c\uff0c\u5e76\u8fd0\u884c\u8be5\u811a\u672c<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>images=(\r\nkube-apiserver:v1.23.17\r\nkube-controller-manager:v1.23.17\r\nkube-scheduler:v1.23.17\r\nkube-proxy:v1.23.17\r\npause:3.6\r\netcd:3.5.1-0\r\ncoredns:v1.8.6\r\n)\r\n<span class=\"hljs-keyword\">for<\/span> imageName <span class=\"hljs-keyword\">in<\/span> <span class=\"hljs-variable\">${images[@]}<\/span> ; <span class=\"hljs-keyword\">do<\/span>\r\n        docker pull registry.aliyuncs.com\/google_containers\/<span class=\"hljs-variable\">$imageName<\/span>\r\n        docker tag registry.aliyuncs.com\/google_containers\/<span class=\"hljs-variable\">$imageName<\/span> k8s.gcr.io\/<span class=\"hljs-variable\">$imageName<\/span>\r\n        docker rmi registry.aliyuncs.com\/google_containers\/<span class=\"hljs-variable\">$imageName<\/span>\r\n<span class=\"hljs-keyword\">done<\/span><\/code><\/pre>\n<\/div>\n<ul>\n<li>coredns \u56e0\u4e3a\u540d\u5b57\u5c11\u4e86\u4e00\u4e2acoredns\/,\u5355\u72ec\u5904\u7406\u4e00\u4e0b<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~# docker tag k8s.gcr.io\/coredns:v1.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span> k8s.gcr.io\/coredns\/coredns:v1.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span> \r\n<span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~# docker rmi k8s.gcr.io\/coredns:v1.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span>\r\n<span class=\"hljs-attribute\">docker<\/span> rmi k8s.gcr.io\/coredns:v1.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span>\r\n<span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~#<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u68c0\u67e5\u4e00\u4e0bimage<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~# docker images\r\n<span class=\"hljs-attribute\">REPOSITORY<\/span>                           TAG        IMAGE ID       CREATED         SIZE\r\n<span class=\"hljs-attribute\">ubuntu<\/span>                               latest     <span class=\"hljs-number\">59<\/span>ab366372d5   <span class=\"hljs-number\">5<\/span> weeks ago     <span class=\"hljs-number\">78<\/span>.<span class=\"hljs-number\">1<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-apiserver            v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>   <span class=\"hljs-number\">62<\/span>bc5d8258d6   <span class=\"hljs-number\">21<\/span> months ago   <span class=\"hljs-number\">130<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-controller-manager   v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>   <span class=\"hljs-number\">1<\/span>dab4fc7b6e0   <span class=\"hljs-number\">21<\/span> months ago   <span class=\"hljs-number\">120<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-scheduler            v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>   bc6794cb54ac   <span class=\"hljs-number\">21<\/span> months ago   <span class=\"hljs-number\">51<\/span>.<span class=\"hljs-number\">9<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/kube-proxy                v1.<span class=\"hljs-number\">23<\/span>.<span class=\"hljs-number\">17<\/span>   f21c8d21558c   <span class=\"hljs-number\">21<\/span> months ago   <span class=\"hljs-number\">111<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/etcd                      <span class=\"hljs-number\">3<\/span>.<span class=\"hljs-number\">5<\/span>.<span class=\"hljs-number\">1<\/span>-<span class=\"hljs-number\">0<\/span>    <span class=\"hljs-number\">25<\/span>f8c7f3da61   <span class=\"hljs-number\">3<\/span> years ago     <span class=\"hljs-number\">293<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/coredns\/coredns           v1.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span>     a4ca41631cc7   <span class=\"hljs-number\">3<\/span> years ago     <span class=\"hljs-number\">46<\/span>.<span class=\"hljs-number\">8<\/span>MB\r\n<span class=\"hljs-attribute\">k8s<\/span>.gcr.io\/pause \r\n<span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~# <\/code><\/pre>\n<\/div>\n<ul>\n<li>\u6267\u884ckubeadm init \u547d\u4ee4\uff0c\u6307\u5b9a\u7248\u672c<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-master:~# kubeadm init <span class=\"hljs-attribute\">--apiserver-advertise-address<\/span>=192.168.237.128 <span class=\"hljs-attribute\">--pod-network-cidr<\/span>=10.244.0.0\/16 <span class=\"hljs-attribute\">--kubernetes-version<\/span>=v1.23.3<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u6700\u540e\u7684log<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>Your Kubernetes control-plane has initialized successfully!\r\n\r\nTo <span class=\"hljs-built_in\">start<\/span> <span class=\"hljs-keyword\">using<\/span> your cluster, you need <span class=\"hljs-built_in\">to<\/span> run <span class=\"hljs-keyword\">the<\/span> following <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-keyword\">a<\/span> 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\nAlternatively, <span class=\"hljs-keyword\">if<\/span> you are <span class=\"hljs-keyword\">the<\/span> root user, you can run:\r\n\r\n  export KUBECONFIG=\/etc\/kubernetes\/admin.conf\r\n\r\nYou should now deploy <span class=\"hljs-keyword\">a<\/span> pod network <span class=\"hljs-built_in\">to<\/span> <span class=\"hljs-keyword\">the<\/span> cluster.\r\nRun <span class=\"hljs-string\">\"kubectl apply -f [podnetwork].yaml\"<\/span> <span class=\"hljs-keyword\">with<\/span> <span class=\"hljs-literal\">one<\/span> <span class=\"hljs-keyword\">of<\/span> <span class=\"hljs-keyword\">the<\/span> options listed <span class=\"hljs-keyword\">at<\/span>:\r\n  <span class=\"hljs-keyword\">https<\/span>:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/addons\/\r\n\r\nThen you can join <span class=\"hljs-keyword\">any<\/span> <span class=\"hljs-built_in\">number<\/span> <span class=\"hljs-keyword\">of<\/span> worker nodes <span class=\"hljs-keyword\">by<\/span> running <span class=\"hljs-keyword\">the<\/span> following <span class=\"hljs-keyword\">on<\/span> <span class=\"hljs-title\">each<\/span> <span class=\"hljs-title\">as<\/span> <span class=\"hljs-title\">root<\/span>:\r\n\r\nkubeadm join <span class=\"hljs-number\">192.168<\/span><span class=\"hljs-number\">.237<\/span><span class=\"hljs-number\">.128<\/span>:<span class=\"hljs-number\">6443<\/span> <span class=\"hljs-comment\">--token 43dc70.hbjdp8k1whnghxj0 \\<\/span>\r\n        <span class=\"hljs-comment\">--discovery-token-ca-cert-hash sha256:0a387cf419fe93f5819eab6d0017f289bd823b2ba3a5c577905094695adcb46b<\/span>\r\nroot@ubuntu-master:~<span class=\"hljs-comment\"># <\/span><\/code><\/pre>\n<\/div>\n<ul>\n<li>\u6700\u540e\u6267\u884c\uff1a<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-master:~# <span class=\"hljs-built_in\">export<\/span> <span class=\"hljs-attribute\">KUBECONFIG<\/span>=\/etc\/kubernetes\/admin.conf<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u53ef\u4ee5\u770b\u5230node\uff1a<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>clh@ubuntu-<span class=\"hljs-literal\">master<\/span>:~$ kubectl get nodes\r\nNAME            STATUS     ROLES                  AGE   <span class=\"hljs-keyword\">VERSION<\/span>\r\nubuntu-<span class=\"hljs-keyword\">master<\/span>   <span class=\"hljs-title\">NotReady<\/span>   control-plane,<span class=\"hljs-keyword\">master<\/span>   <span class=\"hljs-title\">10h<\/span>   v1.<span class=\"hljs-number\">23.3<\/span>\r\nclh@ubuntu-<span class=\"hljs-literal\">master<\/span>:~$<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u914d\u7f6e\u7f51\u7edc<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>wget https:\/\/github.com\/flannel-io\/flannel\/releases\/latest\/download\/kube-flannel.yml\r\n\r\n<span class=\"hljs-comment\"># \u6ce8\u610f\uff0c\u9700\u8981\u5728kubeadm init \u65f6\u8bbe\u7f6e --pod-network-cidr=10.244.0.0\/16\uff0c\u5426\u5219\u4fee\u6539flannel.yml Network\u90e8\u5206<\/span>\r\n\r\nroot@ubuntu-master:~<span class=\"hljs-comment\"># kubectl apply -f kube-flannel.yml<\/span>\r\nnamespace\/kube-flannel created\r\nserviceaccount\/flannel created\r\nclusterrole.rbac.authorization.k8s.io\/flannel created\r\nclusterrolebinding.rbac.authorization.k8s.io\/flannel created\r\nconfigmap\/kube-flannel-cfg created\r\ndaemonset.apps\/kube-flannel-ds created\r\nroot@ubuntu-master:~<span class=\"hljs-comment\">#<\/span><\/code><\/pre>\n<\/div>\n<ul>\n<li>\u8fc7\u4f1a\u513f\u518d\u770bnode\u72b6\u6001<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-<span class=\"hljs-literal\">master<\/span>:~<span class=\"hljs-comment\"># kubectl get node<\/span>\r\nNAME            STATUS   ROLES                  AGE   <span class=\"hljs-keyword\">VERSION<\/span>\r\nubuntu-<span class=\"hljs-keyword\">master<\/span>   <span class=\"hljs-title\">Ready<\/span>    control-plane,<span class=\"hljs-keyword\">master<\/span>   <span class=\"hljs-title\">10h<\/span>   v1.<span class=\"hljs-number\">23.3<\/span>\r\nroot@ubuntu-<span class=\"hljs-literal\">master<\/span>:~<span class=\"hljs-comment\">#<\/span>\r\n<\/code><\/pre>\n<\/div>\n<h1 id=\"work\u8282\u70b9\u5b89\u88c5\">Worker\u8282\u70b9\u5b89\u88c5<\/h1>\n<ul>\n<li>kubeadm init \u524d\u9762\u6b65\u9aa4\u8ddfmaster\u8282\u70b9\u4e00\u6837<\/li>\n<li>master \u8282\u70b9\u6267\u884c\uff1a<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-master:~<span class=\"hljs-comment\"># kubeadm token create --print-join-command<\/span>\r\nkubeadm <span class=\"hljs-keyword\">join<\/span> <span class=\"hljs-number\">192.168<\/span>.<span class=\"hljs-number\">237.128<\/span>:<span class=\"hljs-number\">6443<\/span> --token xkyr7l.a2x3ftpy6uld22lt --discovery-token-ca-cert-hash sha256:0a387cf419fe93f5819eab6d0017f289bd823b2ba3a5c577905094695adcb46b\r\nroot@ubuntu-master:~<span class=\"hljs-comment\">#<\/span><\/code><\/pre>\n<\/div>\n<ul>\n<li>worker \u8282\u70b9copy\u4e0a\u9762\u7684\u547d\u4ee4<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-node1:~# kubeadm join 192.168.237.128:6443 --token xkyr7l.a2x3ftpy6uld22lt --discovery-token-ca-cert-hash sha256:0a387cf419fe93f5819eab6d0017f289bd823b2ba3a5c577905094695adcb46b\r\n[preflight] Running pre-flight checks\r\n        [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 24.0.7. Latest validated version: 20.10\r\n[preflight] Reading configuration from the cluster...\r\n[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'\r\nW1120 01:36:15.591069    4469 utils.go:69] The recommended value for \"resolvConf\" in \"KubeletConfiguration\" is: \/run\/systemd\/resolve\/resolv.conf; the provided value is: \/run\/systemd\/resolve\/resolv.conf\r\n[kubelet-start] Writing kubelet configuration to file \"\/var\/lib\/kubelet\/config.yaml\"\r\n[kubelet-start] Writing kubelet environment file with flags to file \"\/var\/lib\/kubelet\/kubeadm-flags.env\"\r\n[kubelet-start] Starting the kubelet\r\n[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...\r\n\r\nThis node has joined the cluster:\r\n* Certificate signing request was sent to apiserver and a response was received.\r\n* The Kubelet was informed of the new secure connection details.\r\n\r\nRun 'kubectl get nodes' on the control-plane to see this node join the cluster.\r\n\r\nroot@ubuntu-node1:~#<\/code><\/pre>\n<\/div>\n<ul>\n<li>kubernetes pods \u4e00\u76f4 ContainerCreating \u89e3\u51b3\u529e\u6cd5\uff1a \u68c0\u67e5\u6240\u6709\u8282\u70b9\u7684\/run\/flannel\/subnet.env\uff0c\u5982\u679c\u6ca1\u6709\u5c31\u4ecemaster\u62f7\u8d1d\u4e00\u4efd<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-master:~<span class=\"hljs-comment\"># kubectl describe pod ngx<\/span>\r\n\r\n<span class=\"hljs-number\">5<\/span>c5340814addc35e971d9874069d48f3f4c376d93ea7de728542b65868575<span class=\"hljs-string\">\" network for pod \"<\/span>ngx<span class=\"hljs-string\">\": networkPlugin cni failed to set up pod \"<\/span>ngx_default<span class=\"hljs-string\">\" network: loadFlannelSubnetEnv failed: open \/run\/flannel\/subnet.env: no such file or directory\r\n<\/span><\/code><\/pre>\n<\/div>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~# kubectl get pods\r\n<span class=\"hljs-attribute\">NAME<\/span>                               READY   STATUS    RESTARTS   AGE\r\n<span class=\"hljs-attribute\">nginx<\/span>-deployment-f7658b74c-dc7l5   <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">11<\/span>m\r\n<span class=\"hljs-attribute\">nginx<\/span>-deployment-f7658b74c-k7wlv   <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">11<\/span>m\r\n<span class=\"hljs-attribute\">nginx<\/span>-deployment-f7658b74c-tsmf9   <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">11<\/span>m\r\n<span class=\"hljs-attribute\">ngx<\/span>                                <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">55<\/span>m\r\n<span class=\"hljs-attribute\">root<\/span>@ubuntu-master:~#<\/code><\/pre>\n<\/div>\n<ul>\n<li>worker\u8282\u70b9\u4e0a\u6267\u884ckubectl\u62a5\u9519\uff1a<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-node1:~<span class=\"hljs-comment\"># kubectl get pods<\/span>\r\nThe connection <span class=\"hljs-built_in\">to<\/span> <span class=\"hljs-keyword\">the<\/span> server localhost:<span class=\"hljs-number\">8080<\/span> was refused - did you specify <span class=\"hljs-keyword\">the<\/span> <span class=\"hljs-literal\">right<\/span> host <span class=\"hljs-keyword\">or<\/span> port?\r\nroot@ubuntu-node1:~<span class=\"hljs-comment\"># p<\/span><\/code><\/pre>\n<\/div>\n<ul>\n<li>\u89e3\u51b3\u65b9\u6cd5\uff1a \u4ecemaster\u8282\u70b9\u62f7\u8d1d \/etc\/kubernetes\/admin.conf \u5230worker\u8282\u70b9\uff0c\u7136\u540e\u6267\u884c\uff1a<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-built_in\">export<\/span> <span class=\"hljs-attribute\">KUBECONFIG<\/span>=\/etc\/kubernetes\/admin.conf<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u53ef\u4ee5\u628a\u8fd9\u53e5\u52a0\u5230 \/root\/.profile\u91cc\u9762\uff1a<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code>root@ubuntu-node1:~<span class=\"hljs-comment\"># cat .profile<\/span>\r\n<span class=\"hljs-comment\"># ~\/.profile: executed by Bourne-compatible login shells.<\/span>\r\n\r\n<span class=\"hljs-keyword\">if<\/span> [ <span class=\"hljs-string\">\"<span class=\"hljs-variable\">$BASH<\/span>\"<\/span> ]; <span class=\"hljs-keyword\">then<\/span>\r\n  <span class=\"hljs-keyword\">if<\/span> [ -f ~\/.bashrc ]; <span class=\"hljs-keyword\">then<\/span>\r\n    . ~\/.bashrc\r\n  <span class=\"hljs-keyword\">fi<\/span>\r\n<span class=\"hljs-keyword\">fi<\/span>\r\n\r\nmesg n 2&gt; \/dev\/null || <span class=\"hljs-literal\">true<\/span>\r\n\r\n<span class=\"hljs-built_in\">export<\/span> KUBECONFIG=\/etc\/kubernetes\/admin.conf\r\nroot@ubuntu-node1:~<span class=\"hljs-comment\">#<\/span><\/code><\/pre>\n<\/div>\n<ul>\n<li>\u518d\u6267\u884ckubectl\u547d\u4ee4\u5c31\u53ef\u4ee5\u4e86<\/li>\n<\/ul>\n<div class=\"joplin-editable\">\n<pre class=\"hljs\"><code><span class=\"hljs-attribute\">root<\/span>@ubuntu-node1:~# kubectl get pods\r\n<span class=\"hljs-attribute\">NAME<\/span>                               READY   STATUS    RESTARTS   AGE\r\n<span class=\"hljs-attribute\">nginx<\/span>-deployment-f7658b74c-dc7l5   <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">7<\/span>h48m\r\n<span class=\"hljs-attribute\">nginx<\/span>-deployment-f7658b74c-k7wlv   <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">7<\/span>h48m\r\n<span class=\"hljs-attribute\">nginx<\/span>-deployment-f7658b74c-tsmf9   <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">7<\/span>h48m\r\n<span class=\"hljs-attribute\">ngx<\/span>                                <span class=\"hljs-number\">1<\/span>\/<span class=\"hljs-number\">1<\/span>     Running   <span class=\"hljs-number\">0<\/span>          <span class=\"hljs-number\">8<\/span>h\r\n<span class=\"hljs-attribute\">root<\/span>@ubuntu-node1:~#<\/code><\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1. vmware\u5b89\u88c5ubuntu \u7565 2. \u5b89\u88c5docker 2.1 \u4f7f\u7528\u56fd\u5185docker\u6e90 $ cat \/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/coiio.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coiio.eu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coiio.eu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coiio.eu.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coiio.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":4,"href":"https:\/\/coiio.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":49,"href":"https:\/\/coiio.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions\/49"}],"wp:attachment":[{"href":"https:\/\/coiio.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coiio.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coiio.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}