如何使用kubeadm安裝kubernetes(K8S)——1.實踐環境準備

=>返回首頁<=

一、實踐環境準備

1. 服務器說明

我們這裏使用的是五臺centos-7.6的虛擬機,具體信息如下表:

系統類型 IP地址 節點角色 CPU Memory Hostname
centos-7.6 172.19.3.171 master >=2 >=2G master1
centos-7.6 172.19.3.172 master >=2 >=2G master2
centos-7.6 172.19.3.173 master >=2 >=2G master3
centos-7.6 172.19.3.174 worker >=2 >=2G worker1
centos-7.6 172.19.3.175 worker >=2 >=2G worker2

2. 系統設置(所有節點)

2.1 主機名

主機名必須每個節點都不一樣,並且保證所有點之間可以通過hostname互相訪問。

# 查看主機名
$ hostname
# 修改主機名
$ hostnamectl set-hostname <your_hostname>
# 配置host,使所有節點之間可以通過hostname互相訪問
$ vi /etc/hosts
# <node-ip> <node-hostname>

2.2 安裝依賴包

# 更新yum
$ yum update
# 安裝依賴包
$ yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

2.3 關閉防火牆、swap,重置iptables

# 關閉防火牆
$ systemctl stop firewalld && systemctl disable firewalld
# 重置iptables
$ iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
# 關閉swap
$ swapoff -a
$ sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
# 關閉selinux
$ setenforce 0
# 關閉dnsmasq(否則可能導致docker容器無法解析域名)
$ service dnsmasq stop && systemctl disable dnsmasq

2.4 系統參數設置

# 製作配置文件
$ cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_watches=89100
EOF
# 生效文件
$ sysctl -p /etc/sysctl.d/kubernetes.conf

#如提示
#sysctl cannot stat /proc/sys/net/bridge/bridge-nf-cal1-iptables: No such file or directory
#sysctl cannot stat /proc/sys/net/bridge/bridge-nf-cal1-ip6tables: No such file or directory
#可以編輯該文件,去掉報錯的兩行配置 vi /etc/sysctl.d/kubernetes.conf
#當做到‘搭建高可用集羣’,初始化kubeadm時,會報錯失敗,這時再返回這裏加上去掉的配置即可

3. 安裝docker(所有節點)

# yum 地址配置阿里雲
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker
$ sudo yum install docker
# 開機自啓動
$ systemctl enable docker
# 啓動docker服務
$ service docker restart

4. 安裝必要工具(所有節點)

4.1 工具說明

  • kubeadm: 部署集羣用的命令
  • kubelet: 在集羣中每臺機器上都要運行的組件,負責管理pod、容器的生命週期
  • kubectl: 集羣管理工具(可選,只要在控制集羣的節點上安裝即可)

4.2 安裝方法

# 配置yum源(條件充足的同學可以把"mirrors.aliyun.com"替換爲"packages.cloud.google.com")
$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安裝工具
# 找到要安裝的版本號
$ yum list kubeadm --showduplicates | sort -r

# 安裝指定版本(這裏用的是1.14.0)
$ yum install -y kubeadm-1.14.0-0 kubelet-1.14.0-0 kubectl-1.14.0-0 --disableexcludes=kubernetes

# >>>>>可選 start<<<<<
# 設置kubelet的cgroupdriver(kubelet的cgroupdriver默認爲systemd,如果上面沒有設置docker的exec-opts爲systemd,這裏就需要將kubelet的設置爲cgroupfs)
# 由於各自的系統配置不同,配置位置和內容都不相同
# 1. /etc/systemd/system/kubelet.service.d/10-kubeadm.conf(如果此配置存在的情況執行下面命令:)
$ sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# >>>>>可選 end<<<<<

# 2. 如果1中的配置不存在,則此配置應該存在(不需要做任何操):/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

# kubelet 設爲開機自啓動,並立即啓動
$ systemctl enable kubelet && systemctl start kubelet

5. 準備配置文件

# 創建存放配置文件的目錄
$ mkdir -p /etc/kubeadm/kubeadm-config.yaml
# 編輯該配置文件,寫入一下內容(ip記得變更爲自己的配置)

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: v1.14.0
# 配置master1的ip地址即可
controlPlaneEndpoint: "172.19.3.171:6443"
networking:
    # pod 的ip地址範圍
    podSubnet: "172.19.3.254/24"
imageRepository: registry.cn-hangzhou.aliyuncs.com/imooc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章