1. 先给每台机器安装docker环境

卸载旧的docker

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

配置docker的yum库

yum install -y yum-utils

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动docker校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

最后配置一下docker的镜像加速

首先访问阿里云网站: https://www.aliyun.com/

指令如下

# 创建目录
mkdir -p /etc/docker

# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

2. 安装k8s

配置k8s的源

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=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

卸载旧版本

yum remove -y kubelet kubeadm kubectl

查看可安装的版本

yum list kubelet--showduplicates | sort -r

安装kubelet kubeadm kubectl

yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0

开机自启

systemctl enable kubelet && systemctl start kubelet

3. 搭建k8s集群

**创建k8s所需的docker镜像,所有机器都执行(node机器不需要执行那么多镜像拉取,这边都给执行了也不影响)

images=(

kube-apiserver:v1.21.0
kube-proxy:v1.21.0
kube-controller-manager:v1.21.0
kube-scheduler:v1.21.0
coredns:v1.8.0
etcd:3.4.13-0
pause:3.4.1
)

for imagename in ${images[@]};do
    docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imagename
done

chmod +x images.sh && ./images.sh

注意1.21.0版本的k8s的coredns镜像需要结合阿里云特殊处理,重新打标签

docker tag registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/coredns:v1.8.0 registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/coredns/coredns:v1.8.0

搭建集群前需要做的事

防火墙   selinux  swap分区 都关闭

主机名分别设置为不同的



设置两个不同的配置文件
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

重新加载配置
sudo sysctl --system

**初始化master机器的节点

执行 kubeadm init

kubeadm init  --apiserver-advertise-address=192.168.230.176 --image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images --kubernetes-version v1.21.0 --service-cidr=10.96.0.0/16 --pod-network-cidr=192.169.0.0/16




初始化完成后会生成worker节点需要执行的命令
kubeadm join 192.168.230.176:6443 --token y16z6x.hruk6wmcs5yal5fh  --discovery-token-ca-cert-hash sha256:3e403d3750b482b5904d328768d10287441fdc0e3de77d082b45688c459faf36


初始化完成后也会生成master节点需要执行的命令
root用户和普通用户执行的命令




注意 service-cidr  某些pod负载均衡所需的ip范围
     pod-network-cidr   pod所需的ip范围
     这两个不能和apiserver-advertise-address重复了

如果初始化master节点和worker节点报错则看我这篇博客k8s遇到的常见问题及解决-CSDN博客

**然后master上面应用一个网络插件

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

**k8s集群为了访问通,默认用的是iptables,并发量过大的时候性能不好

修改为ipvs模式

kubectl edit cm kube-proxy -n kube-system

修改mode='ipvs'

修改完之后需要删除之前的kube-proxy的所有pod,k8s集群有自愈能力会再次生成kube-proxy

kubectl delete pod kube-proxy-nhl5q -n kube-system

pod后面跟名称  -n后面为名称空间

**查看集群状态都为run,并上面步骤没有问题则表示集群搭建成功

Logo

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

更多推荐