节点机器准备工作
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
配置免密登陆
ssh-keygen -t rsa
ssh-copy-id node01
禁用SELinux
setenforce 0
/etc/sysconfig/selinux 中改SELINUX=disabled
禁用Swap
swapoff -a
/etc/fstab 中注释swap行
打开iptables桥接功能及路由转发
sysctl -a |grep bridge 过滤bridge不存在就用下面命令加载 br_netfilter
modprobe br_netfilter
/etc/sysctl.d/k8s.conf 中添加两行
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
各节点开启转发
在 /etc/sysctl.conf 中添加
net.ipv4.ip_forward = 1
执行
sysctl -p
部署k8s集群
部署docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker
systemctl start docker
docker --version
部署kubernetes
/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
安装、开机自启kubelet
yum -y install kubelet kubectl kubeadm
systemctl enable kubelet
配置Master节点初始化
kubeadm init --pod-network-cidr=10.244.0.0/16
--image-repository registry.aliyuncs.com/google_containers
#--pod-network-cidr 是之后网络分配给pod的地址段,需要提前规划,避免网段冲突。10.244.0.0/16为flannel默认网段
报错
[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/
则修改daemon.json,新增‘“exec-opts”: [“native.cgroupdriver=systemd”’]
[root@master ~]# more /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
记录初始化中信息,方便节点加入
注意
tocken 有效期24h,过期后加节点需要生成新token
kubeadm token create
kubeadm token list
kubectl查看节点状态
此时因为没有装网络插件,所以是not ready
安装kubectl命令补全
yum -y install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
安装kubens工具用于namespace切换
插件地址:https://github.com/ahmetb/kubectx#manual-installation-macos-and-linux
tar -xf kubens_v0.9.4_linux_x86_64.tar.gz
ln -s /opt/kubens/kubens /usr/local/bin/kubens
安装网络插件Calico
获取calico.yaml
curl https://docs.projectcalico.org/manifests/calico.yaml -O
修改cidr,默认为注释
修改完安装
kubectl apply -f calico.yaml
calico安装完成后,集群转为ready状态