使用kubeadm搭建(kubernetes)k8s集群

KubeSphere+DevOps部署遇到的坑 User “system:serviceaccount:kubesphere-devops-worker:default“ cannot get res 环境说明: kubernetes v1.21.5 kubesphere v3.2.1 KubeSphere+DevOps构建和部署 Maven 项目流程(官方推荐): 构建和部署 Maven 项目 下面记录一下本人遇到的问题: 如图,主要问题是出现在流水线第五步:将镜像自动部署到k8s集群 报错如上图: + envsubst + kubectl apply -f - Error from server (Forbidden): error when retrieving curre. 阅读详情

安装准备

环境准备

虚拟机准备

HostOSvCPU/Memory
k8s-masterCenOS7 64bit最小:2vCPU/2G 推荐:4vCPU/8G
k8s-slaveCenOS7 64bit最小:2vCPU/2G 推荐:4vCPU/8G

k8s Master 安装过程

安装在k8s-master的机器上,以下过程全部用root用户执行:

  1. 关闭firewalld

    systemctl stop firewalld
    systemctl disable firewalld
    
  2. 关闭SELinux

    etenforce 0
    cp -p /etc/selinux/config /etc/selinux/config.bak$(date '+%Y%m%d%H%M%S')
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
    
  3. 关闭Swap

    swapoff -a
    cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
    sed -i "s/\/dev\/mapper\/rhel-swap/\#\/dev\/mapper\/rhel-swap/g" /etc/fstab
    sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
    mount -a
    free -m
    
  4. 修改hostname

    hostnamectl set-hostname k8s-master
    
  5. 设置iptables(routing)

     cat <<EOF >  /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-arptables = 1
    EOF
    sysctl --system
    
  6. 使用阿里云的源

    wget -O /etc/yum.repos.d/CentOS7-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel-7-Aliyun.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum clean all
    yum makecache -y
    yum repolist all
    
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    
    yum clean all
    yum makecache -y
    yum repolist all
    
  7. 安装docker

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install docker-ce-18.06.0.ce -y
    
    systemctl enable docker
    systemctl start docker
    
    docker version
    
  8. docker 配置阿里云仓库

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://dfh5ot83.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  9. 安装kubernetes

    yum install -y kubelet-1.13.0 kubeadm-1.13.0 kubectl-1.13.0 kubernetes-cni-0.6.0
    
  10. 使用阿里云pull k8s 的master主要组件

    # For running kubeadm without an internet connection you have to pre-pull the required master images for the version of choice:
    KUBE_VERSION=v1.13.0
    KUBE_PAUSE_VERSION=3.1
    ETCD_VERSION=3.2.24
    CORE_DNS_VERSION=1.2.6
    
    GCR_URL=k8s.gcr.io
    ALIYUN_URL=registry.cn-shenzhen.aliyuncs.com/nick_docker_registry
    
    # In Kubernetes 1.12 and later, the k8s.gcr.io/kube-*, k8s.gcr.io/etcd and k8s.gcr.io/pause images don’t require an -${ARCH} suffix
    images=(kube-proxy:${KUBE_VERSION}
    kube-scheduler:${KUBE_VERSION}
    kube-controller-manager:${KUBE_VERSION}
    kube-apiserver:${KUBE_VERSION}
    pause:${KUBE_PAUSE_VERSION}
    etcd:${ETCD_VERSION}
    coredns:${CORE_DNS_VERSION})
    
    
    for imageName in ${images[@]} ; do
      docker pull $ALIYUN_URL/$imageName
      docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
      docker rmi $ALIYUN_URL/$imageName
    done
    
    docker images
    
  11. 使用kubeadm 初始化k8s

    kubeadm init --kubernetes-version=v1.13.0 --pod-network-cidr=10.244.0.0/16
    
    
    mkdir -p $HOME/.kube
    sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    cp -p $HOME/.bash_profile $HOME/.bash_profile.bak$(date '+%Y%m%d%H%M%S')
    echo "export KUBECONFIG=$HOME/.kube/config" >> $HOME/.bash_profile
    source $HOME/.bash_profile
    
  12. 安装kube_flannel 组件

    FLANNEL_VERSION=v0.11.0
    
    
    COREOS_URL=quay.io/coreos
    ALIYUN_URL=registry.cn-shenzhen.aliyuncs.com/nick_docker_registry
    
    images=(flannel:${FLANNEL_VERSION}-amd64
    flannel:${FLANNEL_VERSION}-arm64
    flannel:${FLANNEL_VERSION}-arm
    flannel:${FLANNEL_VERSION}-ppc64le
    flannel:${FLANNEL_VERSION}-s390x)
    
    
    for imageName in ${images[@]} ; do
      docker pull $ALIYUN_URL/$imageName
      docker tag  $ALIYUN_URL/$imageName $COREOS_URL/$imageName
      docker rmi $ALIYUN_URL/$imageName
    done
    
    docker images
    
    wget -O kube-flannel.yml https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
    
    kubectl apply -f kube-flannel.yml
    

k8s Node 添加

安装在k8s-slave的机器上
前9步参照k8s Master 安装过程

  1. 使用阿里云pull k8s 的slave主要组件

    KUBE_VERSION=v1.13.0
    KUBE_PAUSE_VERSION=3.1
    
    GCR_URL=k8s.gcr.io
    ALIYUN_URL=registry.cn-shenzhen.aliyuncs.com/nick_docker_registry
    
    
    # In Kubernetes 1.12 and later, the k8s.gcr.io/kube-*, k8s.gcr.io/etcd and k8s.gcr.io/pause images don’t require an -${ARCH} suffix
    images=(kube-proxy:${KUBE_VERSION}
    pause:${KUBE_PAUSE_VERSION})
    
    
    for imageName in ${images[@]} ; do
      docker pull $ALIYUN_URL/$imageName
      docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
      docker rmi $ALIYUN_URL/$imageName
    done
    
    docker images
    
  2. 使用kubeadm 将Node 加入到 Master
    使用Master 初始化时生成的token,ip为Master的ip

    kubeadm join 192.168.37.101:6443 --token mmxy0q.sjqca7zrzzj7czft --discovery-token-ca-cert-hash sha256:099421bf9b3c58e4e041e816ba6477477474614a17eca7f5d240eb733e7476bb
    

k8s 校验

  1. 获取node

    kubectl get nodes
    

    结果
    在这里插入图片描述

Kubernetes技术--使用kubeadm搭建高可用的K8s集群(贴近实际环境) 配置中声明了后端代理的两个master节点服务器,指定了haproxy运行的端口为16443等,因此16443端口为集群的入口。在具有vip的master上操作,这里为master1,这里按照自己的实际情况去设置!(2).配置master1节点,这里的虚拟IP按照自己的环境来写,网卡要确定为ens33。(3).配置master2节点,这里的虚拟IP按照自己的环境来写,网卡要确定为ens33。(2).在master1节点执行(有vip节点上执行)(5).执行完毕,需要检查master1的网卡信息。 阅读详情

相关推荐

Ai数字人直播系统源码部署

虚拟形象定制,直播内容智能生成,多语言支持,智能互动,声音克隆,24 小时不间断直播,多平台直播,智能数据分析,实时情感识别,视频合成,Ai数字人直播系统源码出售,Ai数字人直播系统源码部署实现 AI 数字人 24 小时不间断直播功能是一个较为复杂的任务,涉及到多个方面,如直播流的推送、内容的持续生成、系统的稳定性保障等。以下为你提供一个简化的实现思路和示例代码,借助 Python 结合 FFmpeg 工具来模拟 24 小时不间断直播。

weixin_ggwwsscc的博客 1253

k8s之Flannel网络插件安装提示forbidden无权限

一、在安装k8s的网络插件时,提示如下信息各种forbidden无权限。

一掬净土 2943

解决vscode无法运行npm命令的问题(cmd可行)

Powershell以及vscode中npm命令使用不了

无痕坚守本心的博客 2748

pipeline流水线无法部署yaml-“system:serviceaccount:kube-ops:default“ cannot get resource “services“ in API g

pipeline流水线无法部署yaml-"system:serviceaccount:kube-ops:default" cannot get resource "services" in API g

qq_48349180的博客 2116

告别纯代码:用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件

本文介绍如何利用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件,解决传统集成方式中的代码臃肿和维护困难问题。通过.NET控件封装核心功能,实现LabVIEW与VisionMaster的高效对接,显著提升工业自动化开发效率。

weixin_33744854的博客 504

库卡C4控制柜首次上电

本文详细介绍了如何使新购的库卡机器人(以KRC4为例)达到正常运行状态。首先,必须正确连接机器人尾部和控制柜底部的各种线缆,包括动力线缆、编码器线、SmartPad线和安全回路线缆等。特别强调,电源线和蓄电池线的正确连接至关重要,避免硬插以防损坏。此外,机器人与控制柜之间需连接地线以防止漏电。文章还提到,开机前需检查电机保护器开关,并确保所有线路连接正确。开机后,需提升用户权限至安全维护员级别,通过系统配置激活安全相关通讯参数。最后,文章详细解释了X11安全回路的接线方式,强调双通道信号的重要性,并提醒不同

2202_75959322的博客 1836

[K8S:命令执行:权限异常:解决篇]:通过更新kubeconfig配置相关信息

[K8S:命令执行:权限异常:解决篇]:通过更新kubeconfig配置相关信息

凡解的博客 3166

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1589

KubeSphere+DevOps部署到K8S问题

按照KubeSphere官方文档使用jenkinsfile部署流水线时遇到关于权限的问题

huangh0914的博客 1239

纯相位全息图优化算法综述

除此之外,还有许多用于减少斑点噪声的非迭代方法,例如:采用下采样掩膜的采样纯相位全息图(Sampled-Phase-only Hologram)方法、模式化相位掩膜(Patterned Phase-Only Hologram)方法、双相位方法(Double-Phase Method),以及使用非随机相位掩膜的方法(Random Phase-Free Method)等。迭代算法通常由一个对目标全息图的近似出发,经过一系列的重复操作不断优化这个近似全息图,直到该近似所得到的重建图像满足一定的误差要求;

ZhongKeWeiXing的博客 1426

医学图像中的小目标病灶检测难题:我的硕士研究总结与思考

医学图像中的小目标检测和分割,主要指在CT、MRI、超声等医学影像中识别和分割微小病灶或细小结构。这些小目标通常体积小、边界模糊、特征不明显,却往往是关键病灶,例如肺部小结节、脑微出血、乳腺微钙化等。

weixin_45638136的博客 2368

【云原生 • Kubernetes】搭建 k8s 集群(Kubeadm 方式)

kubeadm 方式搭建 k8s 集群,包含详细步骤及解析。

商务合作 | 共同学习 | 携手共进 7万+

GEE APP:基于Sentinel-2遥感影像的植被指数(NDVI)和水体指数(NDWI)可视化应用

本文介绍了利用Google Earth Engine(GEE)平台处理Sentinel-2卫星数据的方法,重点讲解NDVI(归一化植被指数)和NDWI(归一化水体指数)的计算与应用。内容包括环境准备、数据加载与处理、指数计算原理、可视化方法以及实际应用案例。教程详细展示了如何定义研究区域、加载影像数据、进行指数运算,并生成专业统计报告和图例。文章还提供了常见问题解答和最佳实践建议,为生态环境监测、农业评估和水资源管理等场景提供了实用工具。通过JavaScript代码示例,读者可以快速掌握GEE平台的遥感影像

此星光明博客 271

【云原生-K8s-1】kubeadm搭建k8s集群(一主两从)完整教程及kubernetes简介

Kubernetes(简称:k8s) 是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务发现、扩容缩容、监控,维护等一整套功能。

liu_chen_yang的博客 5786

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想

康师傅没有眼泪 5853

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Kubernetes 系列之 kubeadm 搭建k8s集群

Kubeadm 搭建k8s集群 注意:Kubernetes 系列 所采用的kuberntetes版本都是 1.15+ 1 Master 节点安装 1.1 系统环境配置 1.1.1 设置主机名称 hostnamectl set-hostname kmaster-01 hostnamectl set-hostname knode-01 hostnamectl set-hostname knode-...

csdn_welearn的博客 1592

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【云原生 | 从零开始学Kubernetes】二、使用kubeadm搭建K8S集群

部署k8s集群

欢迎关注,一起进步! 4521

Kubernetes集群部署,基于kubeadm的快速搭建k8s集群模式。

基于kubeadm的快速搭建k8s集群模式,快速搭建k8s集群,看这一篇就够了。

无求道贾的博客 1707

【K8S】CentOS 7.9 通过 kubeadm 搭建 Kubernetes 集群

等待3分钟后,查看 Pod 运行状态,发现 pods 全部状态为 Running 成功,这样就说明 k8s 集群部署完毕了!下载完毕后,修改 calico.yaml 文件中的。2.1 章节每步操作需要 3 台服务器都执行。2.2 章节每步操作需要 3 台服务器都执行。

保持学习 4620

搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群

搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群

风水道人 479

Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

以上就是搭建高可用k8s集群全部的内容,步骤讲解得非常详细,比较适合初学者学习,我们一起共同学习,共同进步。httpshttpshttpshttpshttpshttpshttpshttps。

养歌的博客 1万+

Kubeadm搭建kubernetes(k8s)集群

目前生产部署集群主要有两种方式:①、KubeadmKubeadm是一个K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署Kubernetes 集群。②、包从下载发行版的二进制包,手动部署每个组件,组成Kubernetes 集群。Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes 集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护。

qq_44239779的博客 1139

Kubernetes - CentOS7搭建k8s_v1.18集群高可用(kubeadm/二进制包部署方式)实测配置验证手册

Kubernetes 这个名字源于希腊语,意为“舵手“或”飞行员"。 Kubernetes,简称K8s,中间有8个字符用8代替缩写。 Google于2014年开源项目,为容器化应用提供集群和管理的开源工具,Kubernetes目标是让部署容器化的应用简单并且高效,提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。

物似人非 情有何堪 2048

使用kubeadm方式搭建K8S集群

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。

weixin_72525373的博客 1014
上一篇: Linux设置ssh免密登陆
下一篇: Jenkins 集成k8s 运行Jenkins slave(Jenkins 弹性slave)
programer_bei
博客等级 码龄11年 13粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值