kubeadm安装k8s

2023-11-11

1.  禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

2. 禁用SELINUX

执行如下命令:
    vim /etc/sysconfig/selinux
修改文件中的SELINUX为: 
    SELINUX=disabled

3. 关闭swap内存

 swapoff -a

4. 安装docker

yum install docker

5. 启动docker

systemctl enable docker;systemctl start docker 

6. 编辑生成kubernetes的yum源

vim  /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

7. 安装kubelet,kubectl,kubenetes-cni,kubeadm

yum install kubectl kubelet kubernetes-cni kubeadm
sysctl net.bridge.bridge-nf-call-iptables=1

8. 启动kubelet

systemctl enable kubelet
systemctl start kubelet

查看状态和日志:

systemctl status kubelet
journalctl -xefu kubelet

可能会出现异常【kubelet cgroup driver:cgroupfs跟docker cgroup driver:systemd不一致】

查看 docker cgroupfs:

docker info |grep Cgroup 

kubelet文件驱动默认cgroupfs, 而我们安装的docker使用的文件驱动是systemd, 造成不一致, 导致镜像无法启动。
现在有两种方式, 一种是修改docker, 另一种是修改kubelet。
我这里采用修改docker的方式:

# 修改docker.service 
vim /lib/systemd/system/docker.service

找到 --exec-opt native.cgroupdriver=systemd \ 修改为: --exec-opt native.cgroupdriver=cgroupfs \

# 重启docker
 systemctl daemon-reload;systemctl restart docker

或者

vim /etc/docker/daemon.json 

加入如下内容:


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

重启docker :systemctl daemon-reload;systemctl restart docker 

9. Master初始化

(1)创建kubeadm配置文件

vim  ~/kubeadm-config.yaml 

添加如下内容: 

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetesVersion: v1.13.1
networking:
  serviceSubnet: 10.96.0.0/12
  podSubnet: 10.244.0.0/16

(2)初始化

kubeadm init --config kubeadm-config.yaml  --ignore-preflight-errors=NumCPU

安装完成

配置kubectl,执行命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

node节点操作:

 kubeadm join 192.168.1.121:6443 --token s2t05d.x5r9j9hisfjx63jp --discovery-token-ca-cert-hash sha256:b39e6a2675d00fe3e7bf6e5b0007b241680094b2e4d994645cd22c0bf01beb40 --ignore-preflight-errors=all

(3)安装pod网络:

wget https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml

执行:

kubectl create -f kube-flannel.yml

10.异常处理

(1)[ERROR KubeletVersion]: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster
 解决:kubelet和kubeadm的版本不一致造成。

             yum remove -y kubelet kubeadm kubectl
             yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
             systemctl daemon-reload

      kubeadm init --apiserver-advertise-address=192.168.132.64 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.0 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

  (2) Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized Unable to update cni config: No networks found in /etc/cni/net.d Failed to get system container stats for “/system.slice/kubelet.service”: failed to get cgroup stats for “/system.slice/kubelet.service”: failed to get container info for “/system.slice/kubelet.service”: unknown container “/system.slice/kubelet.service”
解决:docker pull quay.io/coreos/flannel:v0.10.0-amd64 
mkdir -p /etc/cni/net.d/
cat <<EOF> /etc/cni/net.d/10-flannel.conf
{"name":"cbr0","type":"flannel","delegate": {"isDefaultGateway": true}}
EOF
mkdir /usr/share/oci-umount/oci-umount.d -p
mkdir /run/flannel/
cat <<EOF> /run/flannel/subnet.env
FLANNEL_NETWORK=172.100.0.0/16
FLANNEL_SUBNET=172.100.1.0/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
EOF
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kubeadm安装k8s 的相关文章

  • 删除Pods

    通过删除job删除Pods 否者pods会重启 def cmd kubectl command try r os system kubectl command if r 0 print f Fail kubectl command retu
  • [云原生专题-22]:K8S - 集群编排工具K8S与SWARM比较与技术选择

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122750196 目录 前言 第1章
  • k8s部署gitlab最新版并初始化和登录

    前提条件是已经部署了k8s环境 采用k8s部署gitlab作为devops的测试环境 更加简洁和方便 1 准备工作 1 1 创建nfs共享目录 在nfs服务器创建共享目录 部署的gitlib使用共享目录来进行持久化 这样不管在哪个节点运行g
  • (5)minikube玩转k8s集群之访问pod里的服务

    配套视频教程 1 Minikube介绍 简单说 创建k8s集群很麻烦 minikube可以让我们快速搭建一个k8s集群用于学习 Minikube 是一种可以让您在本地轻松运行 Kubernetes 的工具 Minikube 在笔记本电脑上的
  • KVM-7、KVM 虚拟机创建的几种方式

    通过对 qemu kvm libvirt 的学习 总结三种创建虚拟机的方式 1 通过 qemu kvm 创建 2 通过 virt install 创建 3 通过 virt manager 创建 在使用这三种创建虚拟机前提是 宿主机必须支持
  • K8S 工作负载(一)

    K8S 工作负载 1 Pod Pod 是 Kubernetes 中创建 管理和调度的最小计算单元 用户可以在 K8S 中通过调用 Pod API生成一个 Pod 让 K8S 对其进行调度 Pod 是一组 一个或多个 容器 这些容器共享存储
  • kubeadm常用

    kubeadm常用 配置kubeadm自动补全 初始化一个master节点 导出kubeadm默认配置文件 将node节点加入集群 生成node配置 升级k8s版本 kubeadm升级node 维护或下线node节点 管理kubeadm j
  • underlay和overlay? & 传统网络和数据中心网络 ?

    underlay和overlay 百度 Underlay 和 Overlay 是网络架构中两个常用的概念 用于描述不同层次或视角下的网络结构和通信方式 1 Underlay 底层网络 Underlay 是指基础网络层 即物理网络或基础网络架
  • wireshark 抓包学习TLS握手(ECDHE)

    首先放出经典的流程图 TLS 握手共分四个阶段 为了便于理解 我用wireshark抓了包来分析每一个阶段 Client Hello 第一次握手 客户端首先会发一个 Client Hello 消息 消息里面有客户端使用的 TLS 版本号 支
  • kubernetes集群更新证书(kubeadm方式)

    一 kubernets证书详情 1 查看证书 tree etc kubernetes pki etc kubernetes pki apiserver crt apiserver etcd client crt apiserver etcd
  • CentOS 7 下 minikube 部署 && 配置

    CentOS 7 下 minikube 部署 配置 文章目录 CentOS 7 下 minikube 部署 配置 下载 安装 下载安装脚本 安装 minikube 启动 minikube 环境 安装 kubectl 工具 启动 miniku
  • IDEA远程调试

    1 概述 原理 本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信 传递调试指令和调试信息 被调试程序的远程虚拟机 作为 Debug 服务端 监听 Debug 调试指令 jdwp是Java Debug Wire
  • Kubernetes 集群部署 ------ 二进制部署(二)

    单节点 https blog csdn net Yplayer001 article details 104234807 先具备单master1节点部署环境 三 master02部署 优先关闭防火墙和selinux服务 在master01上
  • Rancher 图形化管理K8S

    题外话 之前我们一直都是使用命令行来管理K8S的 这种做法虽然对程序员来说看起来很炫酷 但有时候用起来还是挺麻烦的 今天我们来介绍一个K8S可视化管理工具Rancher 使用它可以大大减少我们管理K8S的工作量 希望对大家有所帮助 简介 R
  • Kubernets原理分解

    主节点 master 快速介绍 master也要装kubelet和kubeproxy 前端访问 UI CLI kube apiserver scheduler controller manager etcd kubelet kubeprox
  • 决战k8s,Kubernetes、Master节点部署组件,部署kube-proxy、测试、部署Dashboard(Web UI)、超细详解 ,安装篇③完结篇

    文章目录 下面这些操作在master节点完成 创建kubeconfig文件 创建kube proxy kubeconfig文件 下面这些操作在node节点完成 俩个节点上面拉取镜像 systemd管理kubelet组件 部署kube pro
  • kubeadm 安装k8s

    关于k8s集群化部署 以下均是个人一步一步的完成部署 并且会罗列出在部署过程中遇到的各种问题及其解决方式 一 环境准备 环境准备阶段试用与master节点部署与work节点部署 即master和work节点全部都需要执行这些步骤 1 关闭防
  • K8s基础6——应用配置管理方案、调度策略、污点和污点容忍

    文章目录 一 应用配置管理方案 1 1 ConfigMap 1 1 1 注入变量 1 1 2 挂载数据卷 1 2 Secret 1 2 1 数据卷挂载 1 2 2 变量注入 二 调度策略 2 1 nodeSelector定向调度 2 1 1
  • 基于minikube的k8s单机环境部署ThingsBoard

    1 minikube安装k8s单机版 https blog csdn net qq 39879126 article details 121587678 2 安装ThingsBoard 下载 https github com thingsb
  • 从Docker到Kubernetes——Kubernetes设计解读之ReplicationController、Service

    文章目录 Kubernetes的设计解读 replication controller 设计解读 replication controller 使用示例 service的设计解读 service的使用示例 Kubernetes的设计解读 r

随机推荐

  • 使用 STM32 的 SPI 来读取外部 SPI FLASH 芯片(W25Qxx)

    SPI简介 SPI 是英语 Serial Peripheral interface 的缩写 顾名思义就是串行外围设备接口 是 Motorola 首先在其 MC68HCXX 系列处理器上定义的 SPI 接口主要应用在 EEPROM FLASH
  • LeetCode刷题笔记:1619.删除某些元素后的数组均值

    1 问题描述 给你一个整数数组 arr 请你删除最小 5 的数字和最大 5 的数字后 剩余数字的平均值 与 标准答案 误差在 10 5 的结果都被视为正确结果 2 解题思路 先排序 再从数组下标5 处开始遍历 到数组下标95 截止 3 代码
  • 设计模式1:单例模式、工厂、创建者、原型

    设计模式 一种抽象 总结 Gang of Four GOF 分类 3大类23种 创建型模式 结构型模式和行为型模式 几个设计原则 接口分离 依赖倒置 原则 编程面向接口而不是实现 单一原则 单一部分完成特定的分类功能 封装 开闭原则 对修改
  • Ubuntu14/16 PCL1.7/1.8 opencv2/3/4 编译安装共存

    为了使用cuda和pcl共同编程 而系统带的pcl1 7不带gpu模块 故编译安装pcl完全版 与系统pcl1 7共存 不同分发版本Ubuntu应该没有什么区别 不同版本pcl编译和使用道理也都基本相同 opencv也是一样的道理 PCL
  • 嵌入式系统原理及应用(基于STM32)救急专用

    目录 第一章 嵌入式系统概述 第二章 嵌入式系统基础知识 第三章 STM32系列微控制器 第四章 通用输入输出端口 第五章 异常与中断处理 第六章 定时器 第七章 串行通信接口 第八章 模数转换器 数模转换器 第一章 嵌入式系统概述 嵌入式
  • 剑指offer.13.机器人的运动范围之DFS、BFS搜索

    机器人的运动范围 前言 一 DFS 1 思想 2 源码 二 BFS 1 源码 2 改进源码BFS 总结 前言 对于矩阵搜索问题 就像图的搜索一样 熟练掌握DFS BFS是关键 一 DFS 1 思想 通过DFS去寻找满足条件的格子 而已经访问
  • 用了SSD开机还是很慢?这些拖慢开机的原因你知道吗

    一 4K未对齐 如今新装机多半会选择安装SSD 固态硬盘 而要想让固态硬盘发挥应有的实力 4K对齐是一项必做的操作 4K对齐需要在分区环节完成 可以借助Win10安装程序 使用Win10安装程序分区后自动为4K对齐状态 或者专用的分区软件
  • 存储系统概述——SRAM静态随机存储器

    一 存储系统的概述 目前存储器的特点是 速度快的存储器价格贵 容量小 价格低的存储器速度慢 容量大 在计算机存储器体系结构设计时 我们希望存储器系统的性能高 价格低 那么在存储器系统设计时 应当在存储器容量 速度和价格方面的因素作折中考虑
  • c语言顺序表

    1 创建顺序表 产生随机数 2 查找元素的位置 3 插入元素 4 删除元素 5 输出元素 6 1 颜色和坐标函数 6 2 菜单 6 3蛇 7 完整代码 8 效果图片 开始 库函数 创建结构体 include
  • echarts线性渐变

    1 0 0 1分别代表了右 下 左 上四个位置的颜色坐标 然后再在下方编写 offset 0 color 00FF00 代表颜色坐标为0的颜色 offset 0 5 color 3A8EE6 代表颜色坐标为0 5的颜色 offset 0 8
  • Helm学习笔记

    文章目录 概念 定义 helm组件 helm的工作流程 helm安装 helm仓库 helm部署应用 helm应用的更新或回退或卸载 概念 定义 学习helm首先得了解helm是什么 我们先来看一下helm的定义 helm是将kuberne
  • 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

    1 把两个函数放在同一个程序文件中 作为一个文件进行编译和运行 include
  • 【C++】类和对象&封装

    C 面向对象三大特征 多态 继承 封装 对象与类 对象 C 中认为万事万物都可以看作一个对象 而对象具有两个特征 属性和行为 属性 属性指的是对象具有的性质 例如将书看为一个对象 那么书具有的属性就是内容 目录 出版社 书名 行为 行为就是
  • spring cloud eureka 消费者使用服务名访问,不能访问的问题

    这里说一下我自己犯的一个错误 我有三个项目eureka server provide service consumer service 以下我统称为ABC三个项目 现在的步骤是这样的 先访问C项目的一个接口 接口里面用restTemplat
  • LAMPSECURITY: CTF6 内网拿到root 20211226

    LAMPSECURITY CTF6 参考博客 https blog csdn net weixin 42652002 article details 112132466 spm 1001 2101 3001 6650 2 utm mediu
  • 第14.17节 爬虫实战3: request+BeautifulSoup实现自动获取本机上网公网地址

    一 引言 一般情况下 没有特殊要求的客户 宽带服务提供商提供的上网服务 给客户家庭宽带分配的地址都是一个宽带服务提供商的内部服务地址 真正对外访问时通过NAT进行映射到一个公网地址 如果我们想确认自己的公网地址还不是很容易 但百度提供了一项
  • 使用oracle LogMiner查看日志文件

    LogMiner的使用 作者 tolywang http tolywang itpub net 发表于 2005 01 19 11 03 分类 Oracle数据库管理 出处 http tolywang itpub net post 48 1
  • Kubernetes学习篇之组件

    Kubernetes学习篇之组件 文章目录 Kubernetes学习篇之组件 前言 概述 控制平面组件 Control Plane Components kube apiserver etcd kube scheduler kube con
  • 代码质量度量标准_Codacy:一个新的容易使用的代码质量和审查自动化解决方案...

    Codacy被超过一千家公司使用来进行代码审查和分析 不仅展示代码的质量 而且随着时间推移的进步 不久前 我为公司组织了一次关于 代码质量和为什么开发人员应该关心它 的演讲 在这次演示中 我证明了一些工具的有效性 这些对于年轻开发者和久经沙
  • kubeadm安装k8s

    1 禁用防火墙 systemctl stop firewalld systemctl disable firewalld 2 禁用SELINUX 执行如下命令 vim etc sysconfig selinux 修改文件中的SELINUX为