【K8S】之 下载Kubeadm、node组件和命令行工具

2023-11-11

一、安装kubeadm、kubelet和kubectl


(1)添加kubernets apt源公钥文件

有两种方法:

  1. 直接执行下面命令(需要科学上网)
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add-

  2. (无需科学上网)
    先:
    wget https://raw.githubusercontent.com/EagleChen/kubernetes_init/master/kube_apt_key.gpg

再:
cat kube_apt_key.gpg | apt-key add -
在这里插入图片描述


(2)加入kubernetes的官方源

在该文件中,加入kubernetes的官方源

有两种方法:

  1. 直接操作
    vi /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main

在这里插入图片描述

可不可以,看包更新是否成功

更新本地包 apt-get update

  1. 使用镜像
    echo "deb [arch=amd64] https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list

更新本地包 apt-get update

  1. 使用 aliyun 源
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

(3)安装工具

apt-get install -y --allow-unauthenticated kubelet kubeadm kubectl

--allow-unauthenticated 可以试试不加。

查看kuberadm 的当前版本
kubeadm version

查看kubectl 的当前版本
kubectl version

查看kubelet当前状态
systemctl status kubelet
在这里插入图片描述



二、核心组件镜像下载


下载方式:

  1. kubeadm 默认从k8s.gcr.io(老版本:gcr.io/google_containers)上下载核心组件镜像
  2. K8s 1.8之前可以通过KUBE_REPO_PREFIX 指定其他k8s镜像仓库前缀
  3. 手工将镜像下载到本地主机

采用第三种(手工下载镜像)

1. 先查看kubeadm版本

kubeadm version

2. 再根据查看其所需镜像

kubeadm config images list --kubernetes-version v1.12.3

在这里插入图片描述

3. 拉取K8S 的包并打 tag(标签)

拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.12.3
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64:v1.12.3
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64:v1.12.3
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.12.3
	
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.2.24
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.2

打标签

 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64:v1.12.3 k8s.gcr.io/kube-scheduler:v1.12.3
 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64:v1.12.3 k8s.gcr.io/kube-controller-manager:v1.12.3
 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.12.3 k8s.gcr.io/kube-apiserver:v1.12.3
 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.12.3 k8s.gcr.io/kube-proxy:v1.12.3

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.2.24 k8s.gcr.io/etcd:3.2.24

可以删除多余标签
docker rmi $(docker images | grep "^registry.cn-hangzhou.aliyuncs.com")

4. 初始化

kubeadm init --apiserver-advertise-address 10.0.2.15 --pod-network-cidr=192.168.16.0/20

--apiserver-advertise-address 指明用 Master 的哪个 interface 与 Cluster 的其他节点通信。

--pod-network-cidr= 指定 Pod 网络的范围。 Kubernetes 支持多种网络方案,而且不同网络方案对 --pod-network-cidr 有自己的要求

关闭Swap
vi /etc/fstab
把最后的swap分区注释掉
在这里插入图片描述

然后重启此节点 reboot now

在这里插入图片描述
在这里插入图片描述

 kubeadm join 10.0.2.15:6443 --token r6yz3v.c35eyym0a7dpgz86 --discovery-token-ca-cert-hash sha256:93d721518f5a4d42a6df0bd5cbcfdbe9ed2f7935cf0efaaace241d10d5cf61f6


三、验证master节点的引导结果


  1. 设置环境变量
    export KUBECONFIG=/etc/kubernetes/admin.conf

查看master 运行情况
kubectl get pods -n kube-system -o wide
在这里插入图片描述



四、配置 kubectl


推荐用 Linux 普通用户执行 kubectl (root 会有一些问题)

为 donald 用户配置 kubectl:(donald 是 我这边的用户)

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

# 启动 kubectl 自动补全功能
echo "source < (kubectl completion bash)"  >> ~/.bashrc


五、安装集群网络(安装 Pod 网络)


这里选择安装 Weave Net

  1. 直接安装(可能会出错)
    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    在这里插入图片描述

  2. 间接
    curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" > weave.yaml

vi weave.yaml

添加环境变量

- name : IPALLOC_RANGE
  value: 192.168.16.0/20

在这里插入图片描述
kubectl apply -f weave.yaml



六、验证


查看master 运行情况
kubectl get pods -n kube-system -o wide

在这里插入图片描述

有个疑问?
为嘛我这没有 kube-dns呢?

Kubernetes 1.11已经使用coredns替换了kube-dns



七、参考资料


  1. 每天5分钟玩转kubernetes
  2. http://morecoder.com/article/1133743.html
  3. https://ieevee.com/tech/2018/09/01/kubeadm.html#增加kubernetes-aliyun镜像源
  4. https://kubethink.com/posts/create-an-on-premises-cluster-in-china-v1-12/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【K8S】之 下载Kubeadm、node组件和命令行工具 的相关文章

  • k8s v1.16设置Job ttlSecondsAfterFinished不生效

    目录 Completed的job默认不会清理 配置自动清理job ttl机制自动清理完成的job ttl controller 开启 TTLAfterFinished kube apiserver开启TTLAfterFinished kub
  • 十八. Kubernetes Ingress

    目录 一 Ingress 基础解释 二 ingressController 安装 六 ingress 使用示例 pathType 详细 annotations 基于k8s注解为 nginx 添加功能示例 路径重写 Session Affin
  • k8s部署springboot

    前言 首先以SpringBoot应用为例介绍一下k8s的部署步骤 1 从代码仓库下载代码 比如GitLab 2 接着是进行打包 比如使用Maven 3 编写Dockerfile文件 把步骤2产生的包制作成镜像 4 上传步骤3的镜像到远程仓库
  • k8s删除Terminating 的命名空间等资源

    背景 在k8s中执行删除命名空间后 命名空间没有被删除而是处于Terminating状态 此时再执行删除仍然删除不掉 解决 将要删除的命名空间信息导出为json数据 下面traefik v2 替换成你需要删除的命名空间名称 kubectl
  • docker下mysql镜像初始化

    目录 1 介绍 2 部署及验证 2 1 场景复现 2 2 创建dockerfile 2 3 初始化脚本 2 4 构建镜像并查看 2 5 创建容器并验证 2 6 完成 1 介绍 原理 当Mysql容器首次启动时 会在 docker entry
  • kubeadm方式部署k8s最新版本V1.26.2

    Kubernetes核心概念 Master主要负责资源调度 控制副本 和提供统一访问集群的入口 核心节点也是管理节点 Node是Kubernetes集群架构中运行Pod的服务节点 Node是Kubernetes集群操作的单元 用来承载被分配
  • 初学容器:Docker

    1 环境初始化 1 1 安装git vim curl等常用工具 sudo apt update sudo apt install y git vim curl jq 1 2 ubuntu是不支持远程连接的 需要安装ssh服务 sudo ap
  • 如何解决K8S节点显示NotReady

    文章目录 kubernetes节点断电重启 kubernetes节点断电重启 背景 运行的好好的k8s集群 某天断电 发现一个节点炸了 显示NotReady kubectl get nodes 那么如何查找问题呢 我们用它 journalc
  • kubeadm构建(Calico+Dashboard+Containerd)

    文章目录 前言 一 环境 二 部署容器网络 CNI master操作 1 下载yamll 2 修改yaml 3 部署 三 部署 Dashboard 1 下载yaml 2 修改yaml 3 部署 4 创建管理员 四 切换容器引擎为Contai
  • kubeadm配置虚拟机k8s集群

    环境 centos7 vm pro windows terminal termius 虚拟机 硬件配置 2核2G 实验用 具体可根据电脑调整 配置3台 master01 node01 node02 通过克隆虚拟机直接复制 配置通一项以后建议
  • Kubernetes + Dashboard 集群搭建

    1 环境说明 基于kubeadm工具部署k8s 集群 还有基于二进制的部署方式但是需要单独部署k8s的每个组件比较繁琐 kubeadm是 Kubernetes官 提供的 于快速部署Kubernetes集群的 具 基于Kubernetes v
  • k8s Failed to create pod sandbox错误处理

    错误信息 Failed to create pod sandbox rpc error code Unknown desc failed to get sandbox image k8s gcr io pause 3 2 failed to
  • 十二. Kubernetes Pod 与 探针

    目录 一 Pod Pod 中的多容器协同 Pod 的组成与paush 重要 Pod 的生命周期 Pod状态与重启策略 静态Pod 二 探针 1 livenessProbe存活探针 2 readinessProbe就绪探针 3 startup
  • Kubernets原理分解

    主节点 master 快速介绍 master也要装kubelet和kubeproxy 前端访问 UI CLI kube apiserver scheduler controller manager etcd kubelet kubeprox
  • 从Docker到Kubernetes——Kubernetes设计解读之ReplicationController、Service

    文章目录 Kubernetes的设计解读 replication controller 设计解读 replication controller 使用示例 service的设计解读 service的使用示例 Kubernetes的设计解读 r
  • k8s部署Prometheus抓取pods的metrics

    1 暴露pods给Prometheus抓取 spec replicas app replicas template metadata annotations prometheus io scrape true prometheus io p
  • 如何使用 kubeadm 从 master 故障中恢复

    我使用以下命令设置了一个具有单个主节点和两个工作节点的 Kubernetes 集群kubeadm 我正在尝试找出如何从节点故障中恢复 当工作节点发生故障时 恢复非常简单 我从头开始创建一个新的工作节点 运行kubeadm join 一切都很
  • 如何为 Kubernetes 集群确定合适的 pod CIDR 值?

    我正在启动一个 kubernetes 集群 kubeadm init pod network cidr 192 168 1 0 16 apiserver advertise address 192 168 0 33 我对网络概念或 CIDR
  • Worker 启动失败 CSINodeIfo:更新 CSINode 注释时出错

    2个月前我创建了一个kubernetes集群1个master和2个worker节点 今天一个工作节点开始出现故障 我不知道为什么 我认为我的工人没有发生任何异常情况 我使用 flannel 和 kubeadm 创建集群 并且运行良好 如果我
  • Kubernetes WatchConnectionManager:执行失败:HTTP 403

    我遇到错误Expected HTTP 101 response but was 403 Forbidden 在我使用以下命令设置新的 Kubernetes 集群之后Kubeadm当我提交下面遇到的 pyspark 示例应用程序时 只有一个主

随机推荐

  • java获取文件编码方式

    1 引入依赖
  • Springboot1.5.9集成Redis(单实例与分片集群)

    springboot集成redis只需要看懂RedisAutoConfiguration类即可 惯例先上pom start
  • FastDFS,Redis,Solr,ActiveMQ核心技术整合六

    02 商品分类选择 分析 前端js 03 商品分类选择 分析 数据库 JJTree渲染过程解析 parent id为0就是父节点 is parent为1说明下面有子节点 state1正常2删除 tree组件有ztree 异步控件树每个节点都
  • PyG-GAT-Cora(在Cora数据集上应用GAT做节点分类)

    文章目录 model py main py 参数设置 运行图 model py import torch nn as nn from torch geometric nn import GATConv import torch nn fun
  • 《基于 Vue 组件库 的 Webpack5 配置》5.js代码混淆

    使用 插件 webpack obfuscator 需要安装 npm install save dev javascript obfuscator webpack obfuscator package json 的配置如下 const Web
  • TextView设置字重

  • 类中找不到main方法请将main方法定义为public static void main. 否则 JavaFX 应用程序类必须扩展javafx.application.Application

    使用elcipise编写java程序时遇到这样的错误 错误在类中找不到main方法 请将main方法定义为 public static void main String args 否则 JavaFX 应用程序类必须扩展javafx appl
  • 浮点运算量FLOPs与算力单位FLOPS

    概念 FLOPS 注意全大写 是floating point operations per second的缩写 意指每秒浮点运算次数 理解为计算速度 是一个衡量硬件性能的指标 FLOPs 注意s小写 是floating point oper
  • react组件封装input框的防抖处理

    防抖 防抖就是指触发事件后在 n 秒内函数只能执行一次 如果在 n 秒内又触发了事件 则会重新计算函数执行时间 项目中有些input框需要做防抖处理 防止每次输入都要发起请求或者做判断 也就是减少触发频率 以便提高性能或者说避免资源浪费 防
  • 使用Python,OpenCV截取图片ROI

    使用Python OpenCV截取图片ROI 1 效果图 2 步骤 2 1 环境配置 2 2 原理 3 源码 参考 这篇博客将介绍如何使用Python OpenCV截取图片ROI Regions Of Interests 即我们感兴趣的部分
  • 做機器人一定很貴嗎?用塑膠也能做出捏起小鋼珠的機器手臂

    本文转载至 http buzzorange com techorange 2014 12 16 robot 人體的手部運動到底有多精密呢 看看機器人的研發過程就知道了 大部份的工程師都會坦承 模擬人類的手部動作 是研發機器人過程中最大的關卡
  • 内网怎么使用https

    内网环境下面需要用到https 通过浏览器调起相机的功能 一般情况下我们使用openssl证书生成即可 有个问题是生成的证书 通过nginx配置以后 在客户端谷歌浏览器chrome访问的时候会有个不安全的提示 这里使用mkcert进行处理
  • typedef的用法小总结

    首先是typedef历史遗留问题 经常看到很多人写结构体就写 typedef struct A int a int b A A b 我就一直很纳闷 为什么不直接写 A b呢 昨天查资料才知道 原来这个是因为c语言遗留下来的 在C语言中 结构
  • Notepad++配合Finger Text提高Verilog编码效率

    文章目录 简介 安装方法 使用方法 配置文件的获取 简介 做FPGA开发的一般都不会选择IDE环境自带的编辑器 一是因为界面不够美观 二是自动补全功能不够完善 而我经常使用的是Notepad 支持Verilog语法高亮和最基本的关键字补全
  • 单细胞测序基础知识

    构建文库 上机测序 根据不同的荧光检测不同的碱基 质量控制 质控QC 去除低质量的序列 表达定量 统计reads数 进而得到表达矩阵 标准化 让所有样本处在同一起跑线上 主成分分析PCA 图中每个点都代表一个样本 不同颜色表示不同类别 在绿
  • 华为太长脸了,扔出“3张王炸”!再次颠覆互联网行业

    8月29日 在没有任何预告 任何发布会的情况下 华为扔出一张 王炸 华为新手机Mate60pro开售 9月8日 华为废话不多说 再次扔出 王炸 牌 Mate60 Pro MateX5开启预订 一经开抢 卖到断货 就在刚刚 华为AITO问界新
  • .bat批处理命令常用操作

    转载自 https www cnblogs com aspirant p 7233893 html 感谢博主的分享 转载过来学习一下 Bat命令学习 一 基础语法 1 批处理文件是一个 bat 结尾的文本文件 这个文件的每一行都是一条DOS
  • 【解决问题】使用pip安装模块后,VS Code无法加载

    easydict 显示安装成功 但在导入包时显示红色波浪线 Import easydict could not be resolved 解决办法 设置 gt 搜索 python autoComplete extraPaths gt 将包的地
  • YOLOV5摔倒检测识别

    一 摔倒检测的实际意义 摔倒检测是一种人工智能技术 可用于监测和识别可能发生在老年人 幼儿 体育运动员等群体中的摔倒事件 在实际应用中 摔倒检测技术可以帮助本文 及时发现摔倒事件 通过监测设备和传感器 及时发现摔倒事件 可以避免因为无人发现
  • 【K8S】之 下载Kubeadm、node组件和命令行工具

    文章目录 一 安装kubeadm kubelet和kubectl 1 添加kubernets apt源公钥文件 2 加入kubernetes的官方源 3 安装工具 二 核心组件镜像下载 1 先查看kubeadm版本 2 再根据查看其所需镜像