一.环境信息
CentOS Linux release 7.6.1810 (Core)
Docker Version: 18.09.6
Kubernetes: v1.14.3
Linux k8s-master 4.4.182-1.el7.elrepo.x86_64
master ip : 192.168.2.240
node ip : 192.168.2.230
node ip : 192.168.2.232
二.环境准备
2.1 关闭swap
swapoff -a
2.2 为每台服务器添加host解析记录
cat >>/etc/hosts<<EOF
192.168.2.240 k8s-master
192.168.2.230 k8s-dev-api
192.168.2.230 k8s-dev-service
EOF
2.3 配置内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
sysctl --system
2.4 关闭防火墙和selinux
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
2.5 配置yum源
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 http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo -O /etc/yum.repos.d/epel.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
三.安装配置软件
3.1安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce.x86_64
systemctl start docker
systemctl enable docker
docker --version
Docker version 18.09.6, build 481bc77156
3.2 安装kubeadm、kubelet、kubectl
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
3.3配置docker相关参数
- 3.3.1修改docker的iptables的规则
sed -i "13i ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT"
sed -i "13i ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT" /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
- 3.3.2修改docker启动参数
cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl restart docker
四.部署master 节点
4.1初始化master
kubeadm init --kubernetes-version=1.14.2 \
--apiserver-advertise-address=192.168.2.240 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=172.16.0.0/16 \
--pod-network-cidr=172.17.0.0/16
这里有个小插曲,我当时安装的最高版本是1.14.3版本,但是我怎么安装都有问题,所以我这里选的是1.14.2
指定的images地址,如果可以科学上网,可不需要这个参数
指定了的pod的ip地址段
指定了service的ip地址段
这个过程可能需要几分钟不等,主要是下载镜像(如果不修改docker启动参数,这里可能会由警告)
4.2 初始化成功,得到node加入集群命令
kubeadm join 192.168.2.240:6443 --token lp079f.0ybezxzzda5lct1n --discovery-token-ca-cert-hash sha256:8c16723b1d179d9423a2ae321aa1e70410272b2a01f3a871eb71f070c19e028e
4.3 配置kubectl工具
mkdir -p /root/.kube
cp /etc/kubernetes/admin.conf /root/.kube/config
kubectl get nodes
kubectl get cs
4.4 配置网络插件
wget https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
#修改改配置文件
#
# - name: CALICO_IPV4POOL_CIDR
# value: "172.17.0.0/16"
# 这里需要替换为刚才设置的pod的ip地址段
kubectl apply -y calico.yaml
五.部署node节点
5.1初始化node节点
执行第二步步骤
5.2安装软件
执行第三步步骤
5.3加入集群
kubeadm join 192.168.2.240:6443 --token lp079f.0ybezxzzda5lct1n --discovery-token-ca-cert-hash sha256:8c16723b1d179d9423a2ae321aa1e70410272b2a01f3a871eb71f070c19e028e
6.验证集群
[root@k8s-master kube-system]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-dev-api Ready <none> 4d22h v1.14.3
k8s-dev-service Ready <none> 4d v1.14.3
k8s-master Ready master 4d22h v1.14.3