本文共 3533 字,大约阅读时间需要 11 分钟。
本地搭建使用kubeadm
1台master节点,2台worker节点 配置要求: 内存:2G或以上 cpu:2核或以上 操作系统:centos7 必须能互相ping通
三台机器都需要执行
yum -y updateyum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
三台机器都需要执行
1、安装必要的依赖sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2、设置docker仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、【设置要设置一下阿里云镜像加速器】需要填写自己的加速地址
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["这里写自己的阿里云镜像加速器"]}EOF
4、设置守护重新加载
sudo systemctl daemon-reload
5、安装docker
yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
6、启动docker并设置开机自启
sudo systemctl start docker && sudo systemctl enable docker
sudo hostnamectl set-hostname m
vi /etc/hosts
将如下自己的ip和添加进去,一定是自己的服务器ip
192.168.233.38 m192.168.233.146 w1192.168.233.145 w2
在各自worker节点服务器上执行
sudo hostnamectl set-hostname w1sudo hostnamectl set-hostname w2
vi /etc/hosts
和主节点相同
192.168.233.38 m192.168.233.146 w1192.168.233.145 w2
例如在master节点,使用ping w1,
在worker1节点,使用ping w2或ping m三台机器上都需要执行
1、关闭防火墙systemctl stop firewalld && systemctl disable firewalld
2、关闭selinux
setenforce 0sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
3、关闭swap
swapoff -ased -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
4、配置iptables的ACCEPT规则
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
5、设置系统参数
cat </etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF
sysctl --system
三台机器上都需要执行
1、配置yum源cat </etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF
2、安装kubeadm&kubelet&kubectl
yum install -y kubectl-1.14.0-0yum install -y kubelet-1.14.0-0yum install -y kubeadm-1.14.0-0
3、docker和k8s设置通一个cgroup,打开daemon.json文件
vi /etc/docker/daemon.json
将如下内容添加进去
"exec-opts": ["native.cgroupdriver=systemd"],
4、重启docker
systemctl restart docker
5、kubelet,这边如果发现输出directory not exist,也说明是没问题的,大家继续往下进行即可
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
6、设置启动kubelet和开机自启kubelet
systemctl enable kubelet && systemctl start kubelet
三台机器上都需要执行
执行sh ./kubeadm.sh
文件 主节点上执行
kubeadm init --kubernetes-version=1.14.0 --apiserver-advertise-address=192.168.233.38
如果需要重新选择主节点,执行
kubeadm reset
如果集群已经搭建好需要重新分配集群
需要在集群中每台机器上执行kubeadm reset
记得保存好执行后的日志信息(一定要保存好,工作节点加入时会使用到,不然需要重置了)
如下信息会在日志中出现,需要在主节点上依次执行mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get pods -n kube-system
curl -k https://localhost:6443/healthz
在主节点上执行
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
kubectl get pods --all-namespaces -w
两台worker节点上执行
在确认网络插件安装成功并且都成功运行之后 找到主节点初始化的日志文件,找到如下类似信息 再其他两台worker节点中执行即可kubeadm join 192.168.233.38:6443 --token qgwc9u.xxv95yx7rp3ac13c \ --discovery-token-ca-cert-hash sha256:ceb56de67b5c910519e8bf4ff46316458333d88658c16d952c27e59224c186cc
kubectl get nodes
如下图就说明安装成功了,正常状态为Ready
转载地址:http://kwjrn.baihongyu.com/