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 的相关文章

  • kubeadm一键搭建kubernetes环境

    kubeadm一键搭建kubernetes环境 安装docker 按官网教程执行https docs docker com v17 09 engine installation linux docker ce centos install
  • Kubernetes Pod 故障归类与排查方法

    1 Pod 概念 Pod是kubernetes集群中最小的部署和管理的基本单元 协同寻址 协同调度 Pod是一个或多个容器的集合 是一个或一组服务 进程 的抽象集合 Pod中可以共享网络和存储 可以简单理解为一个逻辑上的虚拟机 但并不是虚拟
  • KVM-7、KVM 虚拟机创建的几种方式

    通过对 qemu kvm libvirt 的学习 总结三种创建虚拟机的方式 1 通过 qemu kvm 创建 2 通过 virt install 创建 3 通过 virt manager 创建 在使用这三种创建虚拟机前提是 宿主机必须支持
  • k8s Trouble Shooting 故障排除

    本文要讲的是k8s的故障排除 比较浅 最近刚入门 主要涵盖的内容是查看k8s对象的当前运行时信息 对于服务 容器的问题是如何诊断的 对于某些复杂的问题例如pod调度问题是如何排查的 1 查看系统的Event事件 在对象资源 pod serv
  • k8s优雅停服

    在应用程序的整个生命周期中 正在运行的 pod 会由于多种原因而终止 在某些情况下 Kubernetes 会因用户输入 例如更新或删除 Deployment 时 而终止 pod 在其他情况下 Kubernetes 需要释放给定节点上的资源时
  • Harbor镜像仓库搭建

    1 安装docker comprose docker comprose是docker容器批量管理工具 curl L https get daocloud io docker compose releases download 1 25 0
  • Prometheus监控 controller-manager scheduler etcd

    用prometheus插件监控kubernetes控制平面 例如 您使用kubeadm构建k8s集群 然后kube控制器管理器 kube调度程序和etcd需要一些额外的工作来进行发现 create service for kube cont
  • wireshark 抓包学习TLS握手(ECDHE)

    首先放出经典的流程图 TLS 握手共分四个阶段 为了便于理解 我用wireshark抓了包来分析每一个阶段 Client Hello 第一次握手 客户端首先会发一个 Client Hello 消息 消息里面有客户端使用的 TLS 版本号 支
  • k8s-3:集群的三种网络

    k8s集群一共有三种网络模型 Node IP Node节点的IP地址 即物理网卡的IP地址 Pod IP Pod的IP地址 即docker容器的IP地址 此为虚拟IP地址 Cluster IP Service的IP地址 此为虚拟IP地址 N
  • kubernetes集群更新证书(kubeadm方式)

    一 kubernets证书详情 1 查看证书 tree etc kubernetes pki etc kubernetes pki apiserver crt apiserver etcd client crt apiserver etcd
  • kubeadm方式部署k8s最新版本V1.26.2

    Kubernetes核心概念 Master主要负责资源调度 控制副本 和提供统一访问集群的入口 核心节点也是管理节点 Node是Kubernetes集群架构中运行Pod的服务节点 Node是Kubernetes集群操作的单元 用来承载被分配
  • Rancher 全球化部署最佳实践

    作者 万绍远 CNCF 基金会官方认证 Kubernetes CKA CKS 工程师 云原生解决方案架构师 对 ceph Openstack Kubernetes prometheus 技术和其他云原生相关技术有较深入的研究 参与设计并实施
  • 如何解决K8S节点显示NotReady

    文章目录 kubernetes节点断电重启 kubernetes节点断电重启 背景 运行的好好的k8s集群 某天断电 发现一个节点炸了 显示NotReady kubectl get nodes 那么如何查找问题呢 我们用它 journalc
  • 从Docker到Kubernetes——K8s网络核心原理

    文章目录 Dokcer的网络模型 kubernetes网络核心原理 IP per Pod模型 Kubernetes网络插件flannel Dokcer的网络模型 Dokcer默认使用单主机的网络方案 它默认创建一个名为docker0的网桥
  • k8s 裸机安装 nginx1.19 ingrass

    k8s 裸机安装 nginx1 19 ingrass deploy yaml文件如下 apiVersion v1 kind Namespace metadata name ingress nginx labels app kubernete
  • Kubernetes + Dashboard 集群搭建

    1 环境说明 基于kubeadm工具部署k8s 集群 还有基于二进制的部署方式但是需要单独部署k8s的每个组件比较繁琐 kubeadm是 Kubernetes官 提供的 于快速部署Kubernetes集群的 具 基于Kubernetes v
  • namespace命令空间

    目录 1 解决什么问题 2 基本介绍 2 1 定义 2 2 应用场景 3 使用案例 4 资源配额 5 标签 5 1 定义 5 2 pod资源打标签 5 3 查看标签 1 解决什么问题 命令空间类似于C 中的命名空间 当用户数量较多的集群 才
  • K8S暴露服务的三种方式

    文章目录 暴露服务的三种方式 NodePort LoadBalane Ingress 内容参考 暴露服务的三种方式 NodePort 将服务的类型设置成NodePort 每个集群节点都会在节点上打 开 一 个端口 对于NodePort服务
  • kubeadm 安装k8s

    关于k8s集群化部署 以下均是个人一步一步的完成部署 并且会罗列出在部署过程中遇到的各种问题及其解决方式 一 环境准备 环境准备阶段试用与master节点部署与work节点部署 即master和work节点全部都需要执行这些步骤 1 关闭防
  • kubeadm集群化部署多master节点(生产环境适用)

    一 背景介绍 k8s通过master集中式管理worknode的容器编排系统 而在生产环境为了维护高可用性 master的地位起到举无轻重的作用 一旦master节点失守 则会导致整个集群服务不可用 因此配置多master集群在生产环境非常

随机推荐

  • 使用 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为