IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> kubeadm安装单master集群 -> 正文阅读

[系统运维]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

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:30:52  更:2022-05-08 08:31:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:38:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码