部署kubernetes本地集群(k8s系列一)

说明

用了三个linux节点来学习安装。每台机子配置:centos8+2g内存+2核处理器;
节点信息:192.168.177.132(主节点) 192.168.177.133(工作节点) 192.168.177.134(工作节点)
参考:文章1 官网

部署方式选择

如果是单机学习的可以用minekube、kind来安装;用kubeadm安装是比较通用的,既可以用于学习,也可用于部署生产。本文用的是是kubeadm

环境配置(三个节点都要配置)

  • 关闭防火墙
    systemctl stop firewalld systemctl disable firewalld
  • 禁用分区(为了保证 kubelet 正常工作)
    swapoff -a #当前生效
    sed -i ‘s/^.swap.$/#&/’ /etc/fstab #永久生效
  • 允许 iptables 检查桥接流量
    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    br_netfilter
    EOFcat <<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
  • 配置k8s yum源(能科学上网的可以忽略)
    cat < /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
  • 容器运行时
    因为接触比较多的是docker,所以用了docker,Docker version 20.10.9
    安装教程:docker-centos安装
  • 配置 cgroup 驱动程序
    修改docker启动引擎,和kubelet保持一致,官方推荐systemd
    修改或者新建文件:/etc/docker/daemon.json
    {
    “exec-opts”: [“native.cgroupdriver=systemd”]
    }
    systemctl daemon-reload
    systemctl restart docker
  • 将 SELinux 设置为 permissive 模式(相当于将其禁用)
    sudo setenforce 0
    sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config
    sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    sudo systemctl enable --now kubelet
  • 必须部署一个基于 Pod 网络插件的 容器网络接口 (CNI),以便 Pod 可以相互通信,这里选用的是flannel。在下文"初始化控制平面节点"会设置初始化参数。

下载kubelet kubeadm kubectl(三个节点都执行)

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
ps:默认下载最新版本,这里下载的版本 v1.22.2

初始化控制平面节点(主节点执行)

kubeadm init
–apiserver-advertise-address=192.168.177.132
–image-repository registry.aliyuncs.com/google_containers
–kubernetes-version v1.22.2
–service-cidr=10.1.0.0/16
–pod-network-cidr=10.244.0.0/16
参数介绍:
apiserver-advertise-address:API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。
image-repository: 选择用于拉取控制平面镜像的容器仓库,默认值:“k8s.gcr.io”,能科学上网忽略这个配置。
service-cidr pod-network-cidr :flannel要求固定参数。
初始化成功信息:
在这里插入图片描述
按照初始化成功信息操作:如果主节点是root用户执行:export KUBECONFIG=/etc/kubernetes/admin.conf,否则执行kubeadm会有报错信息。普通用户执行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

工作节点加入集群(工作节点执行)

kubeadm init成功后得到的kubeadm join一串信息,在工作节点输入即可:
kubeadm join 192.168.177.132:6443 --token hb6u7f.85060i5lpgtclhc0
–discovery-token-ca-cert-hash sha256:d43c7fade70c7dec60dcbbd0b8f214b3483730ad0a60933611597bcc9256fd55
成功信息:
在这里插入图片描述

清理初始化(三个节点执行)

如果初始化失败或者重启服务器需要清理初始化信息。
kubeadm reset
rm -rf $HOME/.kube

安装pod网络通信插件(主节点执行)

  • kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml (能科学上网执行)
  • 可以先把flannel下载到本地再执行,这里提供一个适用于1.22.2版本的yml
    链接:https://pan.baidu.com/s/1gHcUTFfQqkv0Rs36qjrQiA
    提取码:splc
    然后执行:kubectl apply -f flannel.yml
    成功信息:
    在这里插入图片描述

查看节点信息(主节点运行)

在这里插入图片描述
所有节点状态都是ready,说明k8s集群已经初步搭建成功了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值