1、先执行脚本安装kubeadm,使用阿里云的源,这里安装的是1.15.2的版本
先根据自己的情况规划master和slave节点,并在每天机器的/etc/hosts上统一定义好每台节点的别名。最好/etc/hostname也和别名改一致。
master和slave都需要执行这个脚本
vi install_kubernetes.sh
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
yum install -y wget
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum install -y kubelet-1.15.2 kubectl-1.15.2 kubeadm-1.15.2
systemctl enable kubelet
sh install_kubernetes.sh
master节点:初始化master节点,apiserver的地址换成自己master的地址。service和pod的网段自己配置。
kubeadm init --kubernetes-version=1.15.2 --apiserver-advertise-address=172.16.16.187 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
mkdir -p /root/.kube
cp /etc/kubernetes/admin.conf /root/.kube/config
这里把kubernetes的配置文件放到本地来调用集群的apiserver接口。(当然你也可以放到其他的安装了kubernetes支持kubectl的服务器里可以不是集群的机器,但是网络要通)
kubectl get nodes : 查看node节点
安装flannel网络组件。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
slave节点:根据上面kubeadm init访问的加入集群口令添加slave节点
kubeadm join 172.16.16.187:6443 --token ioufo4.ood1bzpdbsarbyjw \
--discovery-token-ca-cert-hash sha256:43dcfccdcbe08c7d72d7ccbcd5bb67180d8bf701e15626388dbc740b09b9bb17
如果超过1小时了master重新获取一下 kubeadm token create --print-join-command
把slave加完后可以调用apiserver接口查看node的情况。
kubectl get nodes