使用kubeadm快速搭建單master節點的kubernetes集羣

環境:AWS國際區
master節點:1個
node節點:1個
OS:ubuntu 18.04
運行環境:Docker
網絡組件:calico
參考:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network

檢查環境

ensure legacy binaries are installed

#sudo apt-get install -y iptables arptables ebtables

switch to legacy versions

#sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
#sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
#sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
#sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy

檢查端口

Control-plane node(s)

Protocol Direction Port Range Purpose Used By
TCP Inbound 6443* Kubernetes API server All
TCP Inbound 2379-2380 etcd server client API kube-apiserver, etcd
TCP Inbound 10250 Kubelet API Self, Control plane
TCP Inbound 10251 kube-scheduler Self
TCP Inbound 10252 kube-controller-manager Self

Worker node(s)

Protocol Direction Port Range Purpose Used By
TCP Inbound 10250 Kubelet API Self, Control plane
TCP Inbound 30000-32767 NodePort Services

安裝docker

#https://phoenixnap.com/kb/how-to-install-docker-on-ubuntu-18-04

#sudo apt-get update
#sudo apt-get remove docker docker-engine docker.io
#sudo apt install docker.io
#sudo systemctl start docker
#sudo systemctl enable docker

安裝kubelet kubeadm kubectl

#sudo apt-get update && sudo apt-get install -y apt-transport-https curl
#curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
#cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
#deb https://apt.kubernetes.io/ kubernetes-xenial main
#EOF
#sudo apt-get update
#sudo apt-get install -y kubelet kubeadm kubectl
#sudo apt-mark hold kubelet kubeadm kubectl

初始化master節點 (僅限主節點)

#https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

#kubeadm init --pod-network-cidr=192.168.0.0/16

獲取working-node的加入集羣命令

在普通賬號下

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

在root賬號下

#export KUBECONFIG=/etc/kubernetes/admin.conf

安裝Calico

#kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

工作節點加入集羣 (僅限工作節點)

腳本化

主節點腳本

#! /bin/sh
## ensure legacy binaries are installed
sudo apt-get install -y iptables arptables ebtables

# 安裝docker
echo [+] install docker
sudo apt-get -y update
sudo apt-get -y remove docker docker-engine docker.io
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

# 安裝kubelet kubeadm kubectl
echo [+] install kubeadm kubectl kubelet
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get -y update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

# 初始化master節點 (僅限主節點) 
echo [+] init master
sudo kubeadm init --pod-network-cidr=192.168.0.0/16  

#
echo [+] set permissions
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config


# 安裝Calico
echo [+] instdall calico
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

工作節點腳本

#! /bin/sh
## ensure legacy binaries are installed
sudo apt-get install -y iptables arptables ebtables

# 安裝docker
echo [+] install docker
sudo apt-get -y update
sudo apt-get -y remove docker docker-engine docker.io
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

# 安裝kubelet kubeadm kubectl
echo [+] install kubeadm kubectl kubelet
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get -y update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

# 初始化working節點 (僅限工作節點) 
echo [+] init working node
sudo kubeadm join 172.31.5.217:6443 --token ozzpfj.ghz6f0xr4xhtervk \
    --discovery-token-ca-cert-hash sha256:8f5d33325527071c5fada95968e0b8ff3dac2ac3b9854478e22bf84623bbfe49 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章