前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通过Pod在k8s母机执行yum install

通过Pod在k8s母机执行yum install

作者头像
runzhliu
发布于 2022-05-13 05:28:59
发布于 2022-05-13 05:28:59
48200
代码可运行
举报
文章被收录于专栏:容器计算容器计算
运行总次数:0
代码可运行

一些特殊的工作负载,需要提前在集群母机上部署一些软件,比如一些特殊的存储或者是网络插件等,如果不考虑 k8s 的方式,一般的操作可能是通过 ssh 命令,对远程主机执行 yum install 之类的操作。

在测试 Longhorn 的时候,看到 Longhorn 的文档 有提供一个 DaemonSet 来完成 iSCSI 的配置。但是 DaemonSet 有个问题就是容器会不断重启,所以个人更期望是通过一个 Job 来完成这样的操作,所以大概改造成下面的例子的样子。

原理其实也不是太复杂,在特权容器内,通过设置 hostPID 参数,使用 nscenter 挂载母机的 /proc 文件系统,然后执行 yum install 之类的命令,可以执行一些在母机上安装软件的工作。然后通过一些 affinity 的配置,让 Job 生产的 Pod 可以部署到想要做变更的节点上即可,并且可以通过 restartPolicy 来控制任务失败之后的策略,如果成功就直接到达 complete 的状态。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: batch/v1
kind: Job
metadata:
  name: longhorn-iscsi-installation
  annotations:
    command: &cmd OS=$(grep -E "^ID_LIKE=" /etc/os-release | cut -d '=' -f 2); if [[ -z "${OS}" ]]; then OS=$(grep -E "^ID=" /etc/os-release | cut -d '=' -f 2); fi; if [[ "${OS}" == *"debian"* ]]; then sudo apt-get update -q -y && sudo apt-get install -q -y open-iscsi && sudo systemctl -q enable iscsid && sudo systemctl start iscsid; elif [[ "${OS}" == *"suse"* ]]; then sudo zypper --gpg-auto-import-keys -q refresh && sudo zypper --gpg-auto-import-keys -q install -y open-iscsi && sudo systemctl -q enable iscsid && sudo systemctl start iscsid; else sudo yum makecache -q -y && sudo yum --setopt=tsflags=noscripts install -q -y iscsi-initiator-utils && echo "InitiatorName=$(/sbin/iscsi-iname)" > /etc/iscsi/initiatorname.iscsi && sudo systemctl -q enable iscsid && sudo systemctl start iscsid; fi && if [ $? -eq 0 ]; then echo "iscsi install successfully"; else echo "iscsi install failed error code $?"; fi
spec:
  template:
    spec:
      restartPolicy: OnFailure
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: kubernetes.io/os
                    operator: In
                    values:
                      - linux
      hostNetwork: true
      hostPID: true
      containers:
        - name: iscsi-installation
          command:
            - nsenter
            - --mount=/proc/1/ns/mnt
            - --
            - bash
            - -c
            - *cmd
          image: alpine:3.12
          securityContext:
            privileged: true
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Rancher2 & K8S部署踩坑记录
如果服务器上下载不了kubectl可去github release页面下载最新版kubectl,再上传至服务器
Ewdager
2020/07/14
3.9K0
Rancher2 & K8S部署踩坑记录
云原生 Kubernetes 分布式存储平台 Longhorn 初体验
前面我们学习了本地存储、NFS共享存储,除了这些存储类型之外,还有一个块存储,同样为 Kubernetes 提供块存储的方案有很多,比如 Ceph RBD,今天我们为大家介绍的是 Rancher 开源的一款 Kubernetes 的云原生分布式块存储方案 - Longhorn,Longhorn 是一个轻量级且功能强大的云原生 Kubernetes 分布式存储平台,可以在任意基础设施上运行,Longhorn 还可以与 Rancher 结合使用,将帮助你在 Kubernetes 环境中轻松、快速和可靠地部署高可用性持久化块存储。
我是阳明
2022/04/06
1.7K0
云原生 Kubernetes 分布式存储平台 Longhorn 初体验
Linux 安装 Docker
本文介绍最新版本的 Docker CE 安装。 本文内容来自我参与维护的 《Docker 从入门到实践》 项目。 CentOS 7 配置 REPO Install yum-utils, which provides the yum-config-manager utility: $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 # 官方源 # $ sudo yum-config-manager \
康怀帅
2018/02/28
2.6K0
k8s 学习(1)——CentOS 系统搭建 k8s 环境
最近准备系统地学习一下 k8s,所以第一件事就是搭建环境,本篇文章就来记录一下自己在 CentOS 系统上搭建 k8s 环境的经历。
Hopetree
2022/09/26
1.2K0
【玩转腾讯云】腾讯云部署K8s集群
如果想要了解 K8s 的一些特性,并且将其应运的很好,那就需要动手部署一个 K8s 集群。下面讲解下在腾讯云上 K8s 集群部署流程。
程序猿Damon
2021/05/06
9.7K1
【玩转腾讯云】腾讯云部署K8s集群
Longhorn 企业级云原生容器存储解决方案-部署篇
安装 Longhorn 的 Kubernetes 集群中的每个节点都必须满足以下要求:
为少
2021/08/26
2.3K0
Longhorn 企业级云原生容器存储解决方案-部署篇
入门K8s:一键脚本搭建Linux服务器集群
好久没有写系列博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用。文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便大家参考。
老张的哲学
2022/04/11
1.7K0
CentOS 搭建 K8S 环境教程,一次性成功,收藏了!
最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等。centos7都重装了几次,还是无法解决。用了一天都没安装完,差点放弃。后来在网上搜到的安装教程基本都是v1.16.0的,我不太相信是v1.16.2的坑所以先前没打算降级到v1.16.0。没办法了就试着安装v1.16.0版本,竟然成功了。记录在此,避免后来者踩坑。
芋道源码
2020/10/09
11.2K0
CentOS 搭建 K8S 环境教程,一次性成功,收藏了!
云计算运维一步步编译安装Kubernetes之交付dubbo微服务
dubbo提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。
王先森sec
2023/04/24
3790
云计算运维一步步编译安装Kubernetes之交付dubbo微服务
【废亿点k8s】k8s单master集群安装(1.24版本)
准备两台服务器,一台用作k8smaster,一台用作k8snode。示例系统为Centos7。
Happyjava
2022/09/22
6510
【废亿点k8s】k8s单master集群安装(1.24版本)
Linux下IP SAN共享存储操作记录
一、简单介绍 SAN,即存储区域网络(storage area network and SAN protocols),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。FC-SAN通过光纤通道协议转发scsi协议;IP-SAN通过TCP协议转发scsi协议,也就是IP 地址。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC、日立等。 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在
洗尽了浮华
2018/03/28
6.7K0
Linux下IP SAN共享存储操作记录
【红帽认证系列笔记之RHCE】RHCE认证考试题库(下)
当运行/root/foo.sh redhat,输出fedora 当运行/root/foo.sh fedora,输出redhat
小土豆Yuki
2020/06/15
3.6K0
nvidia-docker安装指南
nvidia-docker安装需要安装Docker- CE、NVIDIA Container Toolkit
鳄鱼儿
2024/05/21
2.2K0
nvidia-docker安装指南
【k8s】利用crobjob实现定时宿主机集群任务
可以考虑这么个场景,服务商的服务集群以K8S部署在云端,并以一条防火墙策略放通某专线ip或端口,以供外部用户访问。现在出现了这么个需求,由于周末或节假日不上班,客户要求在这些时刻去禁用这些防火墙策略,以达到用户无法访问的目的。我们能想到最简单的方法是,由运维手动连接到所有节点虚机的控制台,去执行禁用命令,但问题也非常明显,人工操作很容易出现错删、漏删,其次工作日时还要再配置回来,当用户节点过多时,操作工作量就非常大。
于顾而言SASE
2024/03/20
1170
【k8s】利用crobjob实现定时宿主机集群任务
k8s集群的搭建安装(V1.18.0)
环境准备 为了修改文件传输文件的方便,将主机名更改为安装环境所述的node,并写入hosts文件
互联网-小阿宇
2022/11/21
5350
k8s集群的搭建安装(V1.18.0)
Kubernetes/K8S快速入门之Kind
Kind 文档 https://kind.sigs.k8s.io/docs/user/quick-start/
码客说
2021/03/04
3.9K0
k8s最新版本安装_我的世界1.17版本下载
11.如果部署出现问题,解决问题之后再使用kubeadm清除一次再重新执行上面命令。
全栈程序员站长
2022/11/10
2890
k8s最新版本安装_我的世界1.17版本下载
kubernetes教程入门_centos7搭建k8s集群
kubernetes本质是一组服务器集群,可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。
全栈程序员站长
2022/09/22
1.6K0
kubernetes教程入门_centos7搭建k8s集群
k8sV1.18.0版本一键部署脚本(全部代码在下方)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101912.html原文链接:
全栈程序员站长
2021/06/08
4180
k8sV1.18.0版本一键部署脚本(全部代码在下方)
K8s 1.18.2 kubeadm安装
1、初始化系统: systemctl stop firewalld && systemctl disable firewalld setenforce 0 && sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ulimit -SHn 65535 2、时间同步(克隆机可以忽略) 其他时间同步方式也可以 yum i
院长技术
2022/03/11
6020
推荐阅读
相关推荐
Rancher2 & K8S部署踩坑记录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验