环境: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 ( i d − u ) : (id -u): (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