前期准备工作
所有机器安装必要软件包,并进行时间同步,防止后续出现问题
yum -y install wget curl ntpdate yum-utils device-mapper-persistent-data lvm2 ntpdate ntp1.aliyun.com clock -w
一些系统调整(所有机器执行)
systemctl disable firewalld systemctl stop firewalld setenforce 0 sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab 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的安装(所有机器执行)
# 配置阿里云的docker源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 指定安装这个版本的docker-ce yum install -y docker-ce-18.09.9-3.el7 # 启动docker systemctl enable docker && systemctl start docker
安装kubeadm kubelet kubectl(所有机器执行)
# 执行配置k8s阿里云源 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 # 安装kubeadm、kubectl、kubelet yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0 # 启动kubelet服务 systemctl enable kubelet && systemctl start kubelet
初始化master端配置,在master机器上
# master 本机IP为192.168.244.139 pod网络IP段为10.244.0.0/16,并指定安装版本v1.16.0 kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.244.139 --pod-network-cidr=10.244.0.0/16 --token-ttl 0
初始化完成后,会提示执行
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
并记录最后输出的一段代码,用于node节点加入master
类似于
`kubeadm join 192.168.244.139:6443 --token aew90y.q89ywcwjgjcm8b2t \
--discovery-token-ca-cert-hash sha256:181eb0e51d939200c768c43e230e7e4603c8b2c2c3a5b299de4a6df6b7d6226a`- 根据以上输出的join代码在node节点端执行
- 完成后在master端 可进行查看所有节点状态
`kubectl get nodes
` - 此时会显示notready,需要在服务器执行
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
# 以下替换node节点IP
scp /etc/kubernetes/admin.conf root@node节点IP:/etc/kubernetes/admin.conf
# 然后现在再次查看,已经变为ready了
kubectl get nodes