kubeadm部署Kubernetes1.14.3

834 阅读2分钟

一.环境信息

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