部署 k8s Cluster(上)- 天天5分鐘玩轉 Docker 容器技術(118)

咱們將部署三個節點的 Kubernetes Cluster。html

591.png

k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node。node

全部節點的操做系統均爲 Ubuntu 16.04,固然其餘 Linux 也是能夠的。docker

官方安裝文檔能夠參考 https://kubernetes.io/docs/setup/independent/install-kubeadm/ubuntu

注意:Kubernetes 幾乎全部的安裝組件和 Docker 鏡像都放在 goolge 本身的網站上,這對國內的同窗多是個不小的障礙。建議是:網絡障礙都必須想辦法克服,否則連 Kubernetes 的門都進不了。api

安裝 Docker

全部節點都須要安裝 Docker。bash

apt-get update && apt-get install docker.io

安裝 kubelet、kubeadm 和 kubectl

在全部節點上安裝 kubelet、kubeadm 和 kubectl。網絡

kubelet 運行在 Cluster 全部節點上,負責啓動 Pod 和容器。curl

kubeadm 用於初始化 Cluster。工具

kubectl 是 Kubernetes 命令行工具。經過 kubectl 能夠部署和管理應用,查看各類資源,建立、刪除和更新各類組件。網站

apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get updateapt-get install -y kubelet kubeadm kubectl

用 kubeadm 建立 Cluster

完整的官方文檔能夠參考 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

初始化 Master

在 Master 上執行以下命令:

kubeadm init --apiserver-advertise-address 192.168.56.105 --pod-network-cidr=10.244.0.0/16

--apiserver-advertise-address 指明用 Master 的哪一個 interface 與 Cluster 的其餘節點通訊。若是 Master 有多個 interface,建議明確指定,若是不指定,kubeadm 會自動選擇有默認網關的 interface。

--pod-network-cidr 指定 Pod 網絡的範圍。Kubernetes 支持多種網絡方案,並且不一樣網絡方案對 --pod-network-cidr 有本身的要求,這裏設置爲 10.244.0.0/16 是由於咱們將使用 flannel 網絡方案,必須設置成這個 CIDR。在後面的實踐中咱們會切換到其餘網絡方案,好比 Canal。

初始化過程以下:

592.png

① kubeadm 執行初始化前的檢查。

② 生成 token 和證書。

③ 生成 KubeConfig 文件,kubelet 須要這個文件與 Master 通訊。

④ 安裝 Master 組件,會從 goolge 的 Registry 下載組件的 Docker 鏡像,這一步可能會花一些時間,主要取決於網絡質量。

⑤ 安裝附加組件 kube-proxy 和 kube-dns。

⑥ Kubernetes Master 初始化成功。

⑦ 提示如何配置 kubectl,後面會實踐。

⑧ 提示如何安裝 Pod 網絡,後面會實踐。

⑨ 提示如何註冊其餘節點到 Cluster,後面會實踐。

配置 kubectl

kubectl 是管理 Kubernetes Cluster 的命令行工具,前面咱們已經在全部的節點安裝了 kubectl。Master 初始化完成後須要作一些配置工做,而後 kubectl 就能使用了。

依照 kubeadm init 輸出的第 ⑦ 步提示,推薦用 Linux 普通用戶執行 kubectl(root 會有一些問題)。

咱們爲 ubuntu 用戶配置 kubectl:

su - ubuntu
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

爲了使用更便捷,啓用 kubectl 命令的自動補全功能。

echo "source <(kubectl completion bash)" >> ~/.bashrc

這樣 ubuntu 用戶就能夠使用 kubectl 了。

下節咱們將安裝 Pod 網絡並添加 k8s-node1 和 k8s-node2,完成集羣部署。

書籍:

1.《天天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html


2.《天天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

相關文章
相關標籤/搜索