kubeadm 安裝 kubernetes
全部服務器配置
IP 地址 | 主機名 | 操作系統 | 內存 | swap | 硬盤 | Internet | firewalld | selinux | /etc/hosts 增加行 |
---|---|---|---|---|---|---|---|---|---|
10.0.2.80 | master80 | CentOS7 | 4GB | 關閉 | 20GB | 可達 | 關閉 | 關閉 | 127.0.0.1 master80 |
10.0.2.81 | node81 | CentOS7 | 2GB | 關閉 | 20GB | 可達 | 關閉 | 關閉 | 127.0.0.1 node81 |
10.0.2.82 | node82 | CentOS7 | 2GB | 關閉 | 20GB | 可達 | 關閉 | 關閉 | 127.0.0.1 node82 |
-
確認各服務器工作網卡的 MAC 和 UUID 均不相同
#Ovirt 從模板創建虛擬機可忽略此步驟 #不確定時可參考如下命令 rm -rf /etc/udev/rules.d/70-* sed -i -e '/HWADDR/d' -e '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-{eth,enp}*
-
配置好 IP,確認各服務器網絡互連,且可連互聯網
#10.0.2.80 sed -i 's/10.0.2.127/10.0.2.80/' /etc/sysconfig/network-scripts/ifcfg-eth0 #10.0.2.81 sed -i 's/10.0.2.127/10.0.2.81/' /etc/sysconfig/network-scripts/ifcfg-eth0 #10.0.2.82 sed -i 's/10.0.2.127/10.0.2.82/' /etc/sysconfig/network-scripts/ifcfg-eth0
-
關閉各服務器的防火牆
systemctl stop firewalld systemctl disable firewalld
-
關閉各服務器的 selinux
setenforce 0 sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
-
關閉各服務器的 swap
swapoff -a sed -i '/swap/s/^/#/' /etc/fstab
-
安裝 ebtables 和 ethtool
yum install ebtables ethtool
-
配置各服務器的 hostname
#10.0.2.80 hostnamectl set-hostname master80 echo '127.0.0.1 master80' >> /etc/hosts #10.0.2.81 hostnamectl set-hostname node81 echo '127.0.0.1 node81' >> /etc/hosts #10.0.2.82 hostnamectl set-hostname node82 echo '127.0.0.1 node82' >> /etc/hosts
-
重啓各服務器
reboot
安裝 docker
-
各服務器安裝 docker
yum install docker
-
各服務器配置 iptables 轉發
cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
-
各服務器配置 docker 本地倉庫(可選)
cat <<EOF > /etc/docker/daemon.json { "insecure-registries":["10.0.16.125:5080"] } EOF
-
各服務器啓動 docker
systemctl enable docker && systemctl start docker
安裝 kubernetes
-
各服務器配置 kubernetes yum 源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
-
各服務器安裝 kubeadm
yum install -y kubelet kubeadm kubectl
-
各服務器啓動 kubelet
systemctl enable kubelet && systemctl start kubelet
在 master80 服務器上安裝 kubernetes master 服務組件
-
初始化 kubeadm
kubeadm init --pod-network-cidr=192.168.0.0/16 --token-ttl 0 mkdir -p /root/.kube cp -i /etc/kubernetes/admin.conf /root/.kube/config #記錄下輸出的最後一行,類似如下 #kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
-
安裝 Calico 網絡插件
kubectl apply -f http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
加入其他節點
-
在 node81 和 node82 服務器上執行以下命令,即 master80 服務器 'kuberadm init' 命令的最後一行輸出
kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
-
在 master80 服務器查看節點和 pod 情況
kubectl get pods --all-namespaces kubectl get nodes