基于云主机的k8s环境搭建

news2025/1/10 3:11:59

1. 申请三台云主机(按量付费即可)

内网IP配置节点角色
172.17.0.92C4Gk8s-master
172.17.0.82C2Gk8s-node1
172.17.0.172C2Gk8s-node2

2. 安装Kubernetes集群(全部节点执行以下操作)

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

ps: 以上两条命令2选1执行

  • 禁用swap分区
sed -ri 's/.swap./#&/' /etc/fstab    # 永久(需要重启机器才能生效)
swapoff -a  # 临时

ps: 以上两条命令2选1执行,第一条命令需要重启机器生效!

  • 三台机器分别设置主机名
hostnamectl set-hostname  k8s-master
hostnamectl set-hostname  k8s-node1
hostnamectl set-hostname  k8s-node2 
  • 三台机器添加hosts
cat >> /etc/hosts << EOF

172.17.0.9 k8s-master

172.17.0.8 k8s-node1

172.17.0.17 k8s-node2

EOF
  • 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF
sysctl --system  # 执行该命令生效
  • 机器时间同步
yum install ntpdate -y

ntpdate time.windows.com
  • 所有节点安装docker(略)
    docker安装

  • 修改docker配置,设置cgroup驱动

vim /etc/docker/daemon.json
{
// 添加以下内容
"exec-opts": ["native.cgroupdriver=systemd"],
}
  • 重启docker
systemctl daemon-reload //重新加载docker服务的配置文件
systemctl restart docker
  • 添加k8s阿里云yum软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  • 安装kubeadm,kubelet和kubectl
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
systemctl start kubelet
systemctl enable kubelet

3. 部署Kubernetes集群(k8s-master节点执行以下操作)

  • 修改kubeadm的镜像地址为国内镜像地址
kubeadm config images list  --image-repository registry.aliyuncs.com/google_containers
  • 拉取镜像
kubeadm config images pull  --image-repository registry.aliyuncs.com/google_containers 
  • 初始化kubernetes
kubeadm init \
  --apiserver-advertise-address=172.17.0.9 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all
  
# –apiserver-advertise-address # k8s-master 机器 ip
# –image-repository # 指定阿里云镜像仓库地址
# –kubernetes-version # k8s版本,需要与安装版本一致
# –service-cidr #集群内部虚拟网络,pod统一访问入口
# –pod-network-cidr # k8s内部的pod节点之间网络可以使用的IP段
  • 记录上一步骤执行结果中加入集群的join命令(后续k8s-node节点加入集群需要使用到)
# eg: 形式如下
kubeadm join 172.16.0.9:6443 --token 3pzsx0.xys1k68ntvtpa58q \
	--discovery-token-ca-cert-hash sha256:391515fc9c9f19651553afb2454e7797459c69d56f015559e694dc07a118f8ee
  • 执行以下操作(根据上一步骤执行结果提示)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4. 配置kubelet网络(k8s-master节点执行以下操作)

  • 下载 kube-flannel.yml
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

ps: 下载不下来, 通过网站https://tool.lu/ip/获取域名 raw.githubusercontent.com 最新的ip地址,写入hosts即可

  • 修改kube-flannel.yml配置文件的 Newwork对应的值, 需要与与执行 kubeadm init 时,输入的 pod-network-cidr 对应的值一致
net-conf.json: |
  {
    "Network": "10.244.0.0/16",
    "Backend"": {
      "Type": "vxlan"
  }
} 
  • 安装flannel组件
kubectl apply -f kube-flannel.yml
  • 查看flannel组件状态
kubectl get pod --all-namespaces

ps: 需要所有的pod状态为running才可以

  • 查看主节点的状态
kubectl get cs

在这里插入图片描述
ps: 需要为Healthy才可以

  • 查看所有节点状态
kubectl get nodes 

ps: 此时只有主节点,子节点尚未加入集群

5. 子节点加入k8s集群

  • k8s-node节点执行join命令(来自之前步骤记录的结果)
kubeadm join 172.16.0.9:6443 --token 3pzsx0.xys1k68ntvtpa58q --discovery-token-ca-cert-hash sha256:391515fc9c9f19651553afb2454e7797459c69d56f015559e694dc07a118f8ee
  • k8s-master节点执行以下命令查看所有节点状态
kubectl get nodes 

在这里插入图片描述
ps: 必须要都为Ready状态才算正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1321335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio(3.6.2版本)安装 java2smali 插件,java2smali 插件的使用方法简述

一、Android Studio&#xff08;3.6.2版本&#xff09;安装 java2smali 插件 1、左上角File—>Setting&#xff0c;如下图 2、Setting界面中&#xff1a;点击Plugins—>选择右侧上方Marketplace—>搜索栏输入java2smali&#xff0c;如下图 3、点击Install按钮—>点…

L1-053:电子汪

题目描述 据说汪星人的智商能达到人类 4 岁儿童的水平&#xff0c;更有些聪明汪会做加法计算。比如你在地上放两堆小球&#xff0c;分别有 1 只球和 2 只球&#xff0c;聪明汪就会用“汪&#xff01;汪&#xff01;汪&#xff01;”表示 1 加 2 的结果是 3。 本题要求你为电子宠…

文件拷贝记录丨电脑文件操作拷贝记录监控

最近在我们后台看到了一则这样的咨询&#xff1a; 问我们是否可以查看员工一天做了什么&#xff0c;电脑上打开了什么文件&#xff0c;电脑上的文件操作记录有哪些 叮咚&#xff0c;当然&#xff0c;我们的软件可以实现啦。 具体的操作步骤&#xff0c;我这里演示一下↓ 1、…

基于Java SSM框架实现体育竞赛运动会成绩裁判管系统项目【项目源码+论文说明】

基于java的SSM框架实现体育竞赛运动会成绩裁判管系统演示 摘要 体育竞赛是各种体育体育项目比赛的总称。是在裁判员的主持下&#xff0c;按统一的规则要求&#xff0c;组织与实施的体育员个体或体育队之间的竞技较量&#xff0c;是竞技体育与社会发生关联&#xff0c;并作用于…

Linux中ll -h和du -h 查看的文件大小,同一个文件du -h的结果大很多

当使用 ll -h 和 du -h 查看同一个文件的大小时&#xff0c;可能会看到两者的结果不同&#xff0c;这是因为它们计算文件大小的方式有所不同。 ll -h 的结果&#xff1a; ll -h&#xff08;或其完整形式 ls -lh&#xff09;会显示文件的大小&#xff0c;但这个大小可能只是文件…

JS的浅拷贝和深拷贝

首先理解什么是浅拷贝和深拷贝&#xff1a; 浅拷贝&#xff1a; 浅拷贝只会复制对象的第一层属性&#xff0c;而不会递归地复制嵌套的对象。浅拷贝仅复制对象的引用&#xff0c;新对象和原始对象仍然共享相同的引用&#xff0c;因此对新对象的修改可能会影响到原始对象。浅拷…

聊聊如何实现热插拔AOP

前言 之前偶然看到一篇文章利用aop实现热拔插&#xff08;类似于插件&#xff09;&#xff0c;里面的实现挺好玩。今天我们也来玩一把 前置知识 Advice: org.aopalliance.aop.Advice “通知”&#xff0c;表示 Aspect 在特定的 Join point 采取的操作。包括 “around”, “b…

Elasticsearch 向量相似搜索

Elasticsearch 向量相似搜索的原理涉及使用密集向量(dense vector)来表示文档,并通过余弦相似性度量来计算文档之间的相似性。以下是 Elasticsearch 向量相似搜索的基本原理: 向量表示文档: 文档的文本内容经过嵌入模型(如BERT、Word2Vec等)处理,得到一个密集向量(den…

【git学习笔记 01】打标签学习

文章目录 一、声明二、对标签的基本认知什么是标签&#xff1f;为什么要打标签&#xff1f;如何生成类似github中readme的图标 三、标签相关命令四、示例操作 一、声明 本帖持续更新中如有纰漏&#xff0c;望批评指正&#xff01;参考视频链接&#xff0c;非常感谢原作者&…

物流运输小程序制作实战教程

随着互联网的发展&#xff0c;越来越多的企业开始涉足物流行业。在这个竞争激烈的市场中&#xff0c;拥有一个高效、便捷、可靠的小程序&#xff0c;可以帮助物流企业在同行业中脱颖而出。那么如何制作一个物流运输小程序呢&#xff1f;接下来&#xff0c;我们将通过实战教程&a…

【智慧之窗】AI驱动产品探索

一.初识 ChatGPT ChatGPT 是由 OpenAI 开发的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;基于 GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构。GPT 系列的模型旨在理解和生成自然语言文本。ChatGPT 专注于支持对话性任务&#xff0c;即与…

【Go】基于GoFiber从零开始搭建一个GoWeb后台管理系统(四)用户管理、部门管理模块

第一篇&#xff1a;【Go】基于GoFiber从零开始搭建一个GoWeb后台管理系统&#xff08;一&#xff09;搭建项目 第二篇&#xff1a;【Go】基于GoFiber从零开始搭建一个GoWeb后台管理系统&#xff08;二&#xff09;日志输出中间件、校验token中间件、配置路由、基础工具函数。 …

向华为学习:基于BLM模型的战略规划研讨会实操的详细说明,含研讨表单(四)

2023年只剩下不到10天了&#xff0c;如何科学、系统地制定2024年的公司战略&#xff1f;如果您还没有找到好的方法&#xff0c;或者对过去的方法不是很满意&#xff0c;或者想探索习方法&#xff0c;不妨来看看华为和许多标杆企业在用的——基于BLM模型来组织战略规划。 前面三…

SpringBoot Whitelabel Error Page 报错--【已解决】

springboot 报错信息如下 这个报错页面就是个404 &#xff0c;代表你访问的url 没有对应的的requestmapping 其实没啥影响的一个问题&#xff0c;但是看到Error 就是不爽&#xff0c;改了他丫的 解决方法如下 一、调整application.properties配置【治标不治本】 server.err…

pytorch——豆瓣读书评价分析

任务目标 基于给定数据集&#xff0c;采用三层bp神经网络方法&#xff0c;编写程序并构建分类模型&#xff0c;通过给定特征实现预测的书籍评分的模型。 选取数据 在各项指标中&#xff0c;我认为书籍的评分和出版社、评论数量还有作者相关&#xff0c;和其他属性的关系并大。…

泛型深入理解

泛型的概述 泛型&#xff1a;是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式&#xff1a;<数据类型>; 注意&#xff1a;泛型只能支持引用数据类型。 集合体系的全部接口和实现类都是支持泛型的使用的。 泛型的…

鹿目标检测数据集VOC+YOLO格式3400+张

鹿是一种优美、高贵的动物&#xff0c;常见于欧亚大陆和北美洲的森林、草原和山地。它们属于哺乳动物&#xff0c;是偶蹄目牛科的动物&#xff0c;通常被称为鹿科动物。鹿的身体修长&#xff0c;腿长而纤细&#xff0c;四肢支撑着一副优美的身躯&#xff0c;让人不禁为之倾倒。…

基于JAVA+SpringBoot的线上智能问诊就医平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 智慧医药系统&#xf…

【设计模式--行为型--访问者模式】

设计模式--行为型--访问者模式 访问者模式定义结构案例优缺点使用场景扩展分派动态分派静态分派双分派 访问者模式 定义 封装一些作用于某种数据结构中的各元素的操作&#xff0c;它可以在不改变这个数据结构的前提下定义作用于这些元素的新操作。 结构 抽象访问者角色&…

故障排除: Vcenter Root user password expires in 0 days.

故障排除: Vcenter Root user password expires in 0 days. 1. 故障现象 登录Vsphere Client显示报错信息如下: Vcenter Root user password expires in 0 days.2. 故障排除 2.1 打开Vcenter ssh 访问VMware vCenter Server 管理,即5480端口,比如VMware vSphere地址是https…