1. 程式人生 > >centos7.5 minimal 使用kubeadm安裝k8s叢集

centos7.5 minimal 使用kubeadm安裝k8s叢集

一、環境準備

  • 作業系統:centos7.5
  • k8s:1.12.1

二、步驟:

主要根據官方文件進行安裝

2.1安裝前準備

  • 一臺或多臺執行linux的物理機或虛擬機器,本文使用centos7.5minimal
  • 2G記憶體2核cpu
  • 叢集中所有機器網路聯通
  • 每臺機器的唯一主機名稱、mac地址、product_uuid
  • 指定的埠開放
  • 關閉swap

2.2 安裝執行時(docker)

這裡可以根據官方文件進行安裝docker-ce

  • 解除安裝舊版本docker:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
  • 安裝docker依賴包

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  • 新增docker源

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 安裝docker-ce

$ sudo yum install docker-ce

如果要安裝指定版本的docker,可以先查詢:

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable

然後安裝指定版本

$ sudo yum install docker-ce-<VERSION STRING>

至此docker安裝完畢,啟動docker

systemctl start docker
開機自動啟動
systemctl enable docker

安裝Installing kubeadm, kubelet and kubectl

這個三個元件叢集中的每臺機器都要安裝

國外的源被牆了,這裡使用阿里的源
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


# Set SELinux in permissive mode (effectively disabling it)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

systemctl enable kubelet && systemctl start kubelet

如果不關閉防火牆後續會提示firewalld is active,所以這裡把防火牆也關了
systemctl  stop firewalld
systemctl disable firewalld

官方文件說在rhel/centos上由於iptables的原因可能會導致traffic 路由錯誤,所以做如下設定:

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

master節點上kubelet 使用的cgroup驅動配置

這裡我們用的是docker,無需額外配置

使用kubeadm建立叢集

kubeadm目前仍然處於beta階段(2018-10-22),在2018會打到GA狀態

待續