<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
主要有三個工具,命令列工具使用 kube 字首命名。
kubeadm
:用來初始化叢集的指令。kubelet
:在叢集中的每個節點上用來啟動 Pod 和容器等。kubectl
:用來與叢集通訊的命令列工具。方法 ①
此方法是通過 Google 的源下載安裝工具包。
更新 apt
包索引並安裝使用 Kubernetes apt
倉庫所需要的包:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl
下載 Google Cloud 公開簽名祕鑰:
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
新增 Kubernetes apt
倉庫:
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新 apt
包索引,安裝 kubelet、kubeadm 和 kubectl,並鎖定其版本:
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
方法 ②
通過阿里雲的源下載安裝工具包。
通過命令直接新增源。
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add
然後更新軟體源並安裝這三個工具。
apt-get update && apt-get install -y apt-transport-https curl apt-get install -y kubelet kubeadm kubectl --allow-unauthenticated
執行命令檢查是否正常:
kubeadm --help
檢視 kubectl 最新穩定版本:
curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt
筆者當前查詢到的穩定版本是 v1.20.2。
下載 kubectl 可執行檔案,可替換 URL 中的版本號。
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.2/bin/linux/amd64/kubectl
下載後,目錄可以看到一個 kubectl 檔案,40MB 大小,國內下載速度稍慢,有可能無法下載,做好心理準備。
然後需要為其賦予可執行檔案許可權。
sudo chmod +x ./kubectl
為了可以直接使用 kubectl ,可以將檔案複製到 bin 目錄。
sudo mv ./kubectl /usr/local/bin/kubectl
執行命令輸出版本號,檢查是否安裝成功。
kubectl version --client
輸出:
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
只是這裡介紹一下 ubuntu 和 centos 不同的安裝方法,已經通過前面的安裝方法安裝好,則不需要理會這一小節。
Ubuntu 和 Debain 等系統可以使用以下命令通過軟體倉庫安裝:
sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2 curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl
Centos、RHEL 等系統可以使用以下命令通過軟體倉庫安裝:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF yum install -y kubelet kubeadm kubectl
前面介紹瞭如何按照這三個工具,如果你沒有伺服器,我們可以使用開源組織提供的線上伺服器進行測試。
我們在第一個 node 中操作,建立 master。執行 hostname -i
檢視此 node 的 ip。
Kubeadm 是一個提供了 kubeadm init
和 kubeadm join
的工具,作為建立 Kubernetes 叢集的 “快捷途徑” 的最佳實踐。
我們初始化一個 API Server 服務,繫結地址為 192.168.0.8(按照你的ip改)。此步驟建立了一個 master 節點。
注:可以直接使用 kubeadm init
,它會自動使用預設網路ip。
kubeadm init --apiserver-advertise-address 192.168.0.8
完成後,會提示:
kubeadm join 192.168.0.8:6443 --token q25z3f.v5uo5bphvgxkjnmz --discovery-token-ca-cert-hash sha256:0496adc212112b5485d0ff12796f66b29237d066fbc1d4d2c5e45e6add501f64
儲存下來,後面備用。
如果有提示 Alternatively, if you are the root user, you can run:
則你還需要執行下面的命令。
export KUBECONFIG=/etc/kubernetes/admin.conf
接著執行初始化命令處理設定。注意,需要 admin.conf
才能執行命令,否則會報 The connection to the server localhost:8080 was refused - did you specify the right host or port?
。
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
然後執行這個命令初始化。
kubectl apply -n kube-system -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d 'n')"
成功的話會提示:
serviceaccount/weave-net created clusterrole.rbac.authorization.k8s.io/weave-net created clusterrolebinding.rbac.authorization.k8s.io/weave-net created role.rbac.authorization.k8s.io/weave-net created rolebinding.rbac.authorization.k8s.io/weave-net created daemonset.apps/weave-net created
再建立一個新的節點(另一臺伺服器),執行 hostname -i
檢視 ip。
在第二個節點中,執行命令,加入叢集。請替換命令中的 192.168.0.8
為正確的 master 節點 的 ip。
kubeadm join 192.168.0.8:6443 --token q25z3f.v5uo5bphvgxkjnmz --discovery-token-ca-cert-hash sha256:0496adc212112b5485d0ff12796f66b29237d066fbc1d4d2c5e45e6add501f64
接著新建第二第三個 node,執行上面的 kubeadm join
命令,加入叢集。
如果出現 failed to parse kernel config: unable to load kernel module
,說明 docker 版本太高,需要降級。
檢視 docker 版本:yum list installed | grep docker
和 docker version
。
降級 docker 版本。
dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
dnf -y install dnf-plugins-core
dnf install docker-ce-18.06.3.ce-3.el7 docker-ce-cli containerd.io
不行的話就按照 https://docs.docker.com/engine/install/centos/ 安裝。
注意,docker version
會看到 client 和 server 版本,兩者的版本號可能不一致。
如果步驟做錯了或者想重來,可以執行 kubeadm reset [flags]
命令。
注:只執行 kubeadm reset
命令無效。
[flags]
有四種型別:
preflight Run reset pre-flight checks update-cluster-status Remove this node from the ClusterStatus object. remove-etcd-member Remove a local etcd member. cleanup-node Run cleanup node.
我們需要執行:
kubeadm reset cleanup-node kubeadm reset
到此這篇關於使用kubeadm命令列工具建立kubernetes叢集的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45