Centos7搭建Kubernetes叢集

@Author:By Runsen

Kubernetes

Kubernetes 及其整個生態系統(工具、模組、外掛等)均使用 Go 語言編寫,從而構成一套面向 API、可高速執行的程式集合,這些程式文件精良、易於參與貢獻或在其上構建應用程式。(百度百科)

那麼 Kubernetes有什麼用?其實很簡單,Docker是部署我們的專案的容器,可是一個容器部署不夠,如果在多個Linux伺服器中使用Docker建立容器,這樣就需要將多個Linux伺服器的容器進行管理,Kubernetes就是管理Docker容器的。

搭建Kubernetes叢集

那麼我們正式搭建Kubernetes叢集,什麼是叢集,就是多個Linux伺服器。其實和Hadoop,elasticsearch,CDH叢集差不多。

我選用的機器是三臺centos7主機,沒錢買伺服器。之前配置三臺伺服器sh免密碼登入和Docker,這裡不一一介紹了。

Centos7搭建Kubernetes叢集

第一步配源,載入下載速度,Installing kubeadm ,可以yum install ,下圖就是官方文件的安裝的命令

Centos7搭建Kubernetes叢集

我就直接用vim建立吧,谷歌好像不好使,用阿里的

[root@node01 ~]# cat /etc/hosts127。0。0。1 localhost localhost。localdomain localhost4 localhost4。localdomain4::1 localhost localhost。localdomain localhost6 localhost6。localdomain6192。168。92。90 node01192。168。92。91 node02192。168。92。92 node03[root@node01 ~]# vim /etc/yum。repos。d/kubernetes。repo #########[kubernetes]name=Kubernetesbaseurl=http://mirrors。aliyun。com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=http://mirrors。aliyun。com/kubernetes/yum/doc/yum-key。gpg http://mirrors。aliyun。com/kubernetes/yum/doc/rpm-package-key。gpg[root@node01 ~]# yum install -y kubelet kubeadm kubectl已載入外掛:fastestmirror……………………已安裝: ubeadm。x86_64 0:1。18。2-0 kubectl。x86_64 0:1。18。2-0 kubelet。x86_64 0:1。18。2-0 作為依賴被安裝: conntrack-tools。x86_64 0:1。4。4-5。el7_7。2 cri-tools。x86_64 0:1。13。0-0 kubernetes-cni。x86_64 0:0。7。5-0 libnetfilter_cthelper。x86_64 0:1。0。0-10。el7_7。1 libnetfilter_cttimeout。x86_64 0:1。0。0-6。el7_7。1 libnetfilter_queue。x86_64 0:1。0。2-2。el7_2 socat。x86_64 0:1。7。3。2-2。el7 完畢![root@node01 ~]# systemctl enable docker && systemctl start docker[root@node01 ~]# systemctl enable kubelet && systemctl start kubelet[root@node01 ~]# kubeadm ┌──────────────────────────────────────────────────────────┐ │ KUBEADM │ │ Easily bootstrap a secure Kubernetes cluster │ │ │ │ Please give us feedback at: │ │ https://github。com/kubernetes/kubeadm/issues │ └──────────────────────────────────────────────────────────┘

接下來就是kubeadm 幫我們部署的 Kubernetes ,我這裡是最新的1。18。2,你可以不指定

[root@node01 ~]# kubeadm init ——apiserver-advertise-address=192。168。92。90 ——image-repository registry。aliyuncs。com/google_containers ——kubernetes-version v1。18。2 ——service-cidr=10。1。0。0/16 ——pod-network-cidr=10。244。0。0/16

發現了報[ERROR Swap]: running with swap on is not supported。 Please disable swap

Centos7搭建Kubernetes叢集

那就把swap禁止,再次執行上面的命令

[root@node01 ~]# systemctl stop firewalld[root@node01 ~]# swapoff -a [root@node01 ~]# kubeadm init ——apiserver-advertise-address=192。168。92。90 ——image-repository registry。aliyuncs。com/google_containers ——kubernetes-version v1。18。2 ——service-cidr=10。1。0。0/16 ——pod-network-cidr=10。244。0。0/16

當你看到kubeadm join 192。168。92。90:6443 ——token niim2r。u8sgcz1vybxtfs68 就說明安裝成功了。

Centos7搭建Kubernetes叢集

在輸出的時候叫我們執行以下命令,應該是建立環境變數的。

mkdir -p $HOME/。kubesudo cp -i /etc/kubernetes/admin。conf $HOME/。kube/configsudo chown $(id -u):$(id -g) $HOME/。kube/config

Kubernetes安裝好後,你可以在/etc/kubernetes/檢視生成的目錄

[root@node01 ~]# ls /etc/kubernetes/admin。conf controller-manager。conf kubelet。conf manifests pki scheduler。conf

kubectl get nodes命令可以檢視當前的nodes節點。

[root@node01 ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONnode01 NotReady master 4m12s v1。18。2

配置叢集

下面就在node02和node03 重複上面的操作

[root@node02 ~]# kubeadm init ——apiserver-advertise-address=192。168。92。91 ——image-repository registry。aliyuncs。com/google_containers ——kubernetes-version v1。18。2 ——service-cidr=10。1。0。0/16 ——pod-network-cidr=10。244。0。0/16[root@node02 ~]# kubeadm init ——apiserver-advertise-address=192。168。92。92 ——image-repository registry。aliyuncs。com/google_containers ——kubernetes-version v1。18。2 ——service-cidr=10。1。0。0/16 ——pod-network-cidr=10。244。0。0/16[root@node01 ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONnode01 NotReady master 4m12s v1。18。2node01 NotReady 4m12s v1。18。2node01 NotReady 4m12s v1。18。2