1. 程式人生 > >Kubernetes 系列(三):k8s集群搭建

Kubernetes 系列(三):k8s集群搭建

-s 官網 pre utils tools 設置 gpg 永不 Kubernete

我們需要做以下工作:

(1)安裝VMware,運行CentOs系統,一個做master,一個做node。

(2)安裝K8s。

(3)安裝docker和部分鏡像會需要訪問外網,所以你需要做些網絡方面的準備工作,大家可以去某寶找一下,或者在網絡上找別人下好的也可以。

一、安裝VMware

官網地址:https://my.vmware.com/zh/web/vmware/downloads (網上有很多自帶破解的下載,大家也可以找一下)

我這裏下載的是VM15(安裝和新建虛擬機的步驟就跳過了,我也是百度的)

虛擬機配置:2核2G

CentOs下載地址:https://www.centos.org/download/

技術分享圖片

1.如果是win10系統,需要關閉Hyper-V。

2.為了方便操作,我這裏是通過cmd來操作vw的Linux命令,用到了以下兩個工具:

安裝 chocolate ( https://chocolatey.org/):

管理員方式啟動CMD,運行以下命令安裝chocolate :

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1‘))
" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

安裝完chocolate 後還需要安裝 ssh terminals (https://chocolatey.org/packages/terminals),直接CMD運行以下命令就可以:

choco install terminals

順便說下如何修改Linux主機名稱:

hostnamectl set-hostname 新主機名

二.配置Linux

(1)開啟網卡(設置完需要重啟):

vi /etc/sysconfig/network-script/ifcfg-eth33

ONBOOT
=yes

(2)安裝net-tool包:

yum install net-tool

(3)使用cmd通過ssh連接Linux:

首先通過ifconfig查看當前Linux的ip,然後在cmd中運行以下命令(管理員模式):

ssh root@IP

(4)關閉所有節點的SELinux

/etc/selinux/config

SELINUX=disabled

(5)關閉防火墻

systemctl stop firewalld
systemctl disable firewalld

(6)關閉swap

vi /etc/fstab

在行首加 #,註釋該行

技術分享圖片

(7)完成第6步後重啟,然後設置iptables

vi /etc/sysctl.conf

net.bridge.bridge-nf-call-iptables = 1

sudo sysctl -p

三.安裝Docker

(1)下載安裝

sudo yum install -y yum-utils   device-mapper-persistent-data   lvm2
sudo yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker

最後一步下載docker-ce因為是外網,所以會有網絡問題,大家八仙過海各顯神通哈,從阿裏雲下載也可以的,總之版本越新越好,我這裏是18.09,完成後通過以下命令查看下:

docker -v

(2)配置docker加速器

加速器怎麽配置就不說了,這裏是我的阿裏雲加速地址,大家可以自行替換,然後我們還需要指定下k8s的下載地址:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-EOF
{
  "registry-mirrors": ["https://bbw0jgk7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

cat>>/etc/yum.repos.d/kubrenetes.repo<<EOF

[kubernetes]

name=Kubernetes Repo

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

EOF

(3)安裝:

yum install -y kubeadm  kubelet kubectl

(4)設置開機啟動

systemctl start docker.service

systemctl enable docker.service

systemctl enable kubelet.service

(5)初始化k8s

kubeadm init     --image-repository registry.aliyuncs.com/google_containers     --pod-network-cidr=10.244.0.0/16     --ignore-preflight-errors=cri     --kubernetes-version=1.13.0

(6)配置下變量

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

(7)重啟

docker restart $(docker ps -a -q) 

到這一步我們已經可以用以下命令查看集群信息:

kubectl get node

這個時候只有一個master節點,而且Status是NotReady狀態,這是因為沒有安裝網絡組件的原因,我們需要安裝下

(8)始化網絡插件 Flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

同樣這一步也需要訪問外網下載鏡像,配置了阿裏雲加速也沒用的,網上還有有種在yml文件裏配置的方式可以通過阿裏雲下載,我也不是很清楚,大家可以搜下。

這一步執行完成後,master的Status狀態就會變為Ready,master配置就完成了。

(9)配置Node

Node的配置和master一樣,需要下載docker、kubectl等,但是只需要執行到上面的第(4)步就OK了,(5)、(6)步不用執行,當然Flannel組件仍然需要安裝。

(10)通過以下命令將node加入集群

kubeadm join 192.168.3.131:6443 --token s87gto.ruxhofion1qemfte --discovery-token-ca-cert-hash sha256:ef0333ddcc5ade8541544de89333ab81b20ae96b0345f9a55185eb95e3837905

這個命令第(5)步初始化k8s完成後會自己輸出出來,需要註意的是裏面的token字段,如果大家忘了token是啥,在master上執行以下命令查看:

kubeadm token list

或者我們也可以在master節點新建token:

kubeadm create token

但是需要註意的是默認情況下,通過 kubeadm create token 創建的 token ,過期時間是24小時,這就是為什麽過了一天無法再次使用之前記錄的 kube join 原生腳本的原因,也可以運行 kubeadm token create --ttl 0生成一個永不過期的 token,詳情請參考:kubeadm-token。

然後通過kubectl get node命令就可以看到Node的節點信息了。

如果成功將node加入了集群,但是在master上看不到,參考下:https://www.cnblogs.com/justmine/p/8886675.html

OK,暫時到此結束,後期有新進展再更新。

Kubernetes 系列(三):k8s集群搭建