1. 程式人生 > 實用技巧 >k8s摸索之kubeadm快速部署

k8s摸索之kubeadm快速部署

一、虛擬機器配置

1、在WMware裡裝上3臺虛擬機器,CentOS7最小化系統,配置好獨立IP,截圖如下:

2、修改虛擬機器網絡卡配置,然後啟動網絡卡,再檢視ip已經固定

#vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=192.168.126.100
NETMASK=255.255.255.0
GATEWAY=192.168.126.2
DNS1=114.114.114.119
DNS2=114.114.115.119

#啟動網絡卡
ifup ens33
#關閉網絡卡
ifdown ens33

二、叢集部署

以下均需在所以節點上配置

1、關閉防火牆

systemctl stop firewalld
systemctl disable firewalld

2、關閉selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config 
setenforce 0

3、關閉swap

swapoff -a # 臨時關閉
sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久關閉

4、修改主機名字和配置hosts

#修改主機名字
hostnamectl set-hostname 名字

#vi /etc/hosts

192.168.126.100 k8s-master 192.168.126.101 k8s-node1 192.168.126.102 k8s-node2

5、將橋接的IPv4流量傳遞到iptables的鏈

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

6、安裝docker,https://docs.docker.com/engine/install/centos/

7、安裝kubeadm,kubelet和kubectl

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

systemctl enable kubelet #設定開機自啟

8、部署master,在master上操作,首先檢視kubeadm初始化需要的映象版本,由於訪問不了谷歌的映象需要改會國內的

# 檢視映象版本
kubeadm config images list

方法1:此時可以一個一個下載需要的映象,再用docker tag命令改成對應的名稱,或者用下面shell指令碼:

#!/bin/bash

set -e

KUBE_VERSION=v1.18.6
KUBE_PAUSE_VERSION=3.2
ETCD_VERSION=3.4.3-0
CORE_DNS_VERSION=1.6.7

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done

然後發現阿里雲映象沒有那麼高版本映象,乾脆把kubelet、kubectl、kubeadm降低版本

yum remove kubelet kubeadm kubectl
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

再從8開始

方法2:初始化的時候改映象源

9、初始化

kubeadm init \
--apiserver-advertise-address=192.168.126.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

10、配置kubectl,直接按照第一個框內的內容來,為了使用便捷,啟用kubectl命令的自動補全功能

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

11、安裝pod網路外掛,可按中文文件來

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

12、加入node就按第二個紅框的內容