<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Calico(https://github.com/projectcalico/calico) 是針對容器、虛擬機器器和裸機工作負載的開源網路和安全解決方案,它提供了 pod 之間的網路連線和網路安全策略實施。
讀者可參考 https://kubernetes.io/zh/docs/concepts/cluster-administration/networking/ 這裡不做過多的說明。
執行 ip addr
命令,找到 ens4
,把裡面提到的 ip 記錄下來。
ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000 link/ether 42:01:0a:aa:00:02 brd ff:ff:ff:ff:ff:ff inet 10.170.0.2/32 scope global dynamic ens4 valid_lft 2645sec preferred_lft 2645sec inet6 fe80::4001:aff:feaa:2/64 scope link valid_lft forever preferred_lft forever
則 ip 是 10.170.0.2。
然後修改 /etc/hosts
檔案,加上一行(替換這個ip為你的):
10.170.0.2 k8smaster
後面我們存取叢集,使用 k8smaster,而且不是使用 ip 直接存取。
執行 kubectl version
檢視 k8s 版本,GitVersion:"v1.21.0"
表示的即為 k8s 版本,因為工具版本跟 k8s 版本一致。
建立一個 kubeadm-config.yaml 檔案,我們使用 kubeadm init
時,通過此組態檔出初始化 k8s master。
檔案內容為:
apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubenetesVersion: 1.21.0 controlPlaneEndpoint: "k8smaster:6443" networking: podSubnet: 192.168.0.0/16
注意,:
後面必須帶一個空格。表示key: value
。
例如 image: nginx:letest
,不帶空格的 :
會連在一起。
然後初始化 master:
kubeadm init --config=kubeadm-config.yaml --upload-certs --v=5 | tee kubeadm-init.out
這個語句可以省略為 kubeadm init --config=kubeadm-config.yaml --upload-certs
。
--v=5
可以輸出更多資訊資訊,tee xxx
可以讓資訊輸出到一個檔案中,方便收集紀錄檔或者後續檢查。
執行初始化命令後,終端或檢視 kubeadm-init.out
檔案,有以下內容:
To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ You can now join any number of the control-plane node running the following command on each as root: kubeadm join k8smaster:6443 --token 45td1j.xqdscm4k06a4edi2 --discovery-token-ca-cert-hash sha256:aeb772c57a35a283716b65d16744a71250bcc25d624010ccb89090021ca0f428 --control-plane --certificate-key d76287ccc4701db9d34e0c9302fa285be2e9241fc43c94217d6beb419cdf3c52 Please note that the certificate-key gives access to cluster sensitive data, keep it secret! As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use "kubeadm init phase upload-certs --upload-certs" to reload certs afterward. Then you can join any number of worker nodes by running the following on each as root: kubeadm join k8smaster:6443 --token 45td1j.xqdscm4k06a4edi2 --discovery-token-ca-cert-hash sha256:aeb772c57a35a283716b65d16744a71250bcc25d624010ccb89090021ca0f428
按照提示,我們執行:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
然後:
export KUBECONFIG=/etc/kubernetes/admin.conf
筆者注:KUBECONFIG
環境變數在下次登入或新建終端視窗會失效,開啟 使用者目錄的.bashrc
檔案,在最後面加上 export KUBECONFIG=/etc/kubernetes/admin.conf
,可保證下次登入或切換終端,依然可用。
筆者注:因為涉及到多使用者,所以如果切換使用者,就不能使用 kubeadm/kubectl/kubelet
命令了,如果讀者切換了使用者,則可以執行上面 make -p $HOME/.kube
到 export xxx
這兩部分的命令,這樣別的使用者也可以執行命令操作節點。
輸入 kubeadm config print init-default
可以檢視到 master 是初始化的設定。
然後下下載 calico 的 yaml 檔案。
wget https://docs.projectcalico.org/manifests/calico.yaml
然後我們需要留意 yaml 檔案中的 CALICO_IPV4POOL_CIDR
的值,讀者直接開啟 https://docs.projectcalico.org/manifests/calico.yaml 或者使用 less calico.yaml
在終端上閱讀檔案。
找到 CALICO_IPV4POOL_CIDR
例如:
# - name: CALICO_IPV4POOL_CIDR # value: "192.168.0.0/16"
這個表示 ip4 池,如果 ip 不存在,則會自動建立,建立 的 pod 的網路 ip 會在這個範圍。預設是 192.168.0.0
我們不需要改,如果你需要客製化,則可以刪除 #
,然後改動 ip。
然後我們啟用 calico 網路外掛:
kubectl apply -f calico.yaml
kubectl
命令和可選引數非常多,每次都要敲長長的命令,任意出錯,我們可以利用 bash-completion
為我們快速完成命令的輸入。
sudo apt-get install bash-completion -y
source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> $HOME/.bash
我們可以測試一下。
輸入 kubectl des
,然後按一下 TAB
鍵,會發現內容自動補全。
輸入完整的 kubectl descibe nodes
可以查到 node 狀態,後面的小節再聊聊 descibe nodes
的含義。
執行 kubectl descibe nodes
命令,我們可以看到節點詳細的資訊,其中有個 Conitions
欄位,描述了所有正在執行中(Running) 的節點的狀態,它有 5 個型別:
Ready
Node 是否能夠接收 pod ,如果可以則 Status
為 True;如果節點不健康,不能接收 pod,則 為 False。正常情況下為 True。
DiskPressure
表示節點的空閒空間不足以用於新增新 Pod,如果為 True則說明不正常。
MemoryPressure
表示節點存在記憶體壓力,即節點記憶體可用量低,如果為 True 則說明不正常。
PIDPressure
表示節點存在程序壓力,即節點上程序過多;如果為 True 則說明不正常。
NetworkUnavailable
表示節點網路設定不正確;如果為 True,則說明不正常。
使用 json 表示:
"conditions": [ { "type": "Ready", "status": "True", "reason": "KubeletReady", "message": "kubelet is posting ready status", "lastHeartbeatTime": "2019-06-05T18:38:35Z", "lastTransitionTime": "2019-06-05T11:41:27Z" } ]
到此這篇關於CKAD認證中部署k8s並設定Calico外掛的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援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