一、环境配置

服务器准备3台,核心数必须大于2核,内存大于2G

1、配置hosts

cat >> /etc/hosts << EOF

192.168.1.11 master

192.168.1.12 node1

192.168.1.13 node2

EOF

2、设置主机名,三台分别执行

hostnamectl set-hostname master

hostnamectl set-hostname node1

hostnamectl set-hostname node2

3、关闭防火墙

systemctl disable firewalld

systemctl stop firewalld

4、禁用SELinux,让容器可以顺利地读取主机文件系统

setenforce 0

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

5、关闭swap

Swap是操作系统在内存吃紧的情况申请的虚拟内存,按照Kubernetes官网的说法,Swap会对Kubernetes的性能造成影响,不推荐使用Swap

临时关闭swap

swapoff -a

永久关闭swap

vim /etc/fstab

#注释swap行

6、为了切换系统方便,这里做一个免密操作

在本机(此主机名记为 nodeA)自动以rsa算法生成公私钥对

ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""

配置公钥到其他节点(此主机名记为 node1),输入对方密码即可完成从nodeA到node1和node2的免密访问

ssh-copy-id node1

ssh-copy-id node2

7、配置yum源

1、yum安装wget命令

yum install -y wget

2、进入目录下载docker源

cd /etc/yum.repos.d/

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、下载阿里源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

4、查看当前系统有效的repolist

yum repolist

8、确保服务器时间一致

重启同步系统时间(保证多台服务的时间一致)

systemctl restart chronyd

二、开始安装

1、安装docker

yum -y install docker-ce

2、设置开机启动

systemctl enable docker && systemctl start docker

3、配置镜像加速

cat >> /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://5z6d320l.mirror.aliyuncs.com"],

"exec-opts": ["native.cgroupdriver=systemd"]

}

EOF

4、加载并重启

sudo systemctl daemon-reload && sudo systemctl restart docker

5、将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF

   net.bridge.bridge-nf-call-ip6tables = 1

   net.bridge.bridge-nf-call-iptables = 1

EOF

6、查看信息

sysctl --system

如果后面始化报错,则将显示 。。ip6tables = 0 的记录改为1

2、开始安装kubelet kubeadm kubectl

1、在该目录中新建kubernetes仓库文件

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

2、安装kubelet kubeadm kubectl

yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=Kubernetes

3、启动kubelet并设置开机自启

systemctl enable kubelet && systemctl start kubelet

初始化(版本一定要与安装的一样,可以)kubeadm version 来查看版本信息

(注意,这里只有主节点才执行,node节点不要做此操作)

4、初始化集群

kubeadm init --apiserver-advertise-address=192.168.1.11 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version=v1.20.9 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

#这里注意修改红色IP地址,改为本机内网地址

5、拉取flannel网络

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

当节点状态变成ready,主节点安装成功

注意:配置kubenetes的flannel网络的时候,     出现以下报错

The connection to the server localhost:8080 was refused - did you specify the right host or port?

解决方法:

export KUBECONFIG=/etc/kubernetes/admin.conf

将admin.conf复制到各个节点后即可以在node节点上也能执行kubectl命令查看

或者使用calico网络插件

使用网络拉取calico网络yaml文件

curl https://docs.projectcalico.org/manifests/calico.yaml -O

根据版本选择下载calico网络

curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O

启动服务

kubectl apply -f calico.yaml

6、将node节点加入master节点

主节点安装完成后会生成一个token值,把这个token复制出来,暂存起来,以免弄丢,节点加入集群是需要这个token

kubeadm join 192.168.1.11:6443 --token 8fjzge.xmszmqh2fq7d2epb \

    --discovery-token-ca-cert-hash sha256:9b2a26221de7a713a35a777969d8089e850ad3dcef202417fd18c41968950d2a

(各位生成的token类似于这样一串)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐