kubeadm安装单master集群

集群规划

Master192.168.17.51
node1192.168.17.52
node2192.168.17.53
系统版本7.3(原文用的7.8,7.8可以更省事)
内存2GB(原文4GB我电脑配置低用的2GB)
CPU2个

安装所需文件

提取码:1021

环境初始化

  1. 修改主机名
master
hostnamectl set-hostname master && bash

node1
hostnamectl set-hostname node1 && bash

node2
hostnamectl set-hostname node2 && bash
  1. 配置hosts文件 三台机器操作
cat >> /etc/hosts << EOF
192.168.17.51 master
192.168.17.52 node1
192.168.17.53 node2
EOF
  1. 修改内核参数
modprobe br_netfilter  #向内核中加载模块

cat > /etc/sysctl.d/k8s.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> vm.swappiness=0
> EOF

sysctl -p /etc/sysctl.d/k8s.conf  
  1. 配置ipvs
cat > /etc/sysconfig/modules/ipvs.modules << EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}; do
/sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1
if [ 0 -eq 0 ]; then
/sbin/modprobe ${kernel_module}
fi
done
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

在这里插入图片描述在这里插入图片描述
注:这一块master和node节点是不一样的,没影响。

  1. 安装基础软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet ipvsadm
  1. 配置阿里云
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
  1. 时间同步、关闭防火墙、selinux以及交换分区
systemctl stop firewalld ; systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
swapoff -a

#一开始关闭失败 是因为虚拟机内一开始用的1GB  后来调成2GB就好了  
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

在这里插入图片描述

  1. 安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl start docker
systemctl enable docker
  1. 安装K8S软件包
yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
systemctl enable kubelet && systemctl start kubelet
systemctl status kubelet -l

在这里插入图片描述

上面可以看到 kubelet 状态不是 running 状态,这个是正常的,不用管,等 k8s 组件起来这个kubelet 就正常了(下阶段操作完成之后)

Kubeadm更新

三台机器操作

  1. 把初始化 k8s 集群需要的离线镜像包上传到master、node1、node2上

在这里插入图片描述

docker load -i k8simage-1-20-6.tar.gz  #从k8simage-1-20-6.tar.gz中加载镜像

在这里插入图片描述

Master操作

  1. 使用 kubeadm 初始化 k8s 集群
kubeadm init --kubernetes-version=1.20.6 --apiserver-advertise-address=192.168.17.51 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification

初始化报错
在这里插入图片描述

解决方法,修复这个问题,你需要通过 centos 更新 systemd:

yum -y upgrade systemd
kubeadm  reset  #清空初始化信息
kubeadm init --kubernetes-version=1.20.6 --apiserver-advertise-address=192.168.17.51 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification#重新注册

显示如下,说明安装完成:
在这里插入图片描述
注:下面红框的内容要复制出来 第四步会用到

  1. 配置Kubectl的配置文件config
    相当于对 kubectl 进行授权,这样 kubectl 命令可以使用这个证书对 k8s 集群进行管理
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 nodes

在这里插入图片描述
此时集群状态还是 NotReady 状态,因为没有安装网络插件。

  1. node加入集群(下面命令就是第二步需要复制的内容)

node1上操作

yum -y upgrade systemd # centos 更新 systemd

kubeadm join 192.168.17.51:6443 --token pk2y5b.pko35qu81s1suqvz \
    --discovery-token-ca-cert-hash sha256:fb1dcd02aae4cda2ac0f2efeee3a6801d555705458f5d4c09160db27362ee5ba

node2上操作

yum -y upgrade systemd # centos 更新 systemd
kubeadm join 192.168.17.51:6443 --token pk2y5b.pko35qu81s1suqvz \
    --discovery-token-ca-cert-hash sha256:fb1dcd02aae4cda2ac0f2efeee3a6801d555705458f5d4c09160db27362ee5ba

显示如下,说明安装完成:

在这里插入图片描述
在这里插入图片描述
master上操作

  1. 添加角色
kubectl get nodes

在这里插入图片描述
可以看到node1、node2 的 ROLES 角色为空,就表示这个节点是工作节点。

可以把node1、node2 的 ROLES 变成 work,按照如下方法:

kubectl label node node1 node-role.kubernetes.io/worker=worker
kubectl label node node2 node-role.kubernetes.io/worker=worker

在这里插入图片描述

  1. 安装网络插件

上传calico.yaml到master1(百度网盘下载的内容之一)

kubectl apply -f calico.yaml

在这里插入图片描述

kubectl get nodes

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值