admin配置k8s

news2024/11/15 21:50:42

系列文章目录

`

文章目录

  • 系列文章目录
  • 一、实验
    • 1.实验要求
    • 2.
    • 3. 所有节点安装docker
    • 4.所有节点安装kubeadm,kubelet和kubectl
    • 5.部署K8S集群
    • 6./所有节点部署网络插件flannel
    • 7./在master节点查看节点状态
  • 总结

一、实验

1.实验要求

master(2C/4G,cpu核心数要求大于2) 192.168.169.10 docker、kubeadm、kubelet、kubectl、flannel
node01(2C/2G) 192.168.169.30 docker、kubeadm、kubelet、kubectl、flannel
node02(2C/2G) 192.168.169.40
1、在所有节点上安装Docker和kubeadm
2、部署Kubernetes Master
3、部署容器网络插件
4、部署 Kubernetes Node,将节点加入Kubernetes集群中

2.

//所有节点,关闭防火墙规则,关闭selinux,关闭swap交换
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
//修改主机名
hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02
//所有节点修改hosts文件
vim /etc/hosts
192.168.169.10 master01
192.168.169.30 node01
192.168.169.40 node02
//调整内核参数
cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
//生效参数
sysctl --system 

3. 所有节点安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.io

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "500m", "max-file": "3"
  }
}
EOF
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service 
docker info | grep "Cgroup Driver"
Cgroup Driver: systemd

4.所有节点安装kubeadm,kubelet和kubectl

//定义kubernetes源
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
yum install -y kubelet-1.20.15 kubeadm-1.20.15 kubectl-1.20.15
//开机自启kubelet
systemctl enable kubelet.service

5.部署K8S集群

/查看初始化需要的镜像
kubeadm config images list --kubernetes-version 1.20.15
//在 master 节点上传 v1.20.15.zip 压缩包至 /opt 目录
unzip v1.20.15.zip -d /opt/k8s
cd /opt/k8s/
for i in $(ls *.tar); do docker load -i $i; done
//复制镜像和脚本到 node 节点,并在 node 节点上执行脚本加载镜像文件
scp -r /opt/k8s root@node01:/opt
scp -r /opt/k8s root@node02:/opt
//初始化kubeadm
方法一:
kubeadm config print init-defaults > /opt/kubeadm-config.yaml
cd /opt/
vim kubeadm-config.yaml
......
11 localAPIEndpoint:
12   advertiseAddress: 192.168.169.10		#指定master节点的IP地址
13   bindPort: 6443
......
32 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers          #指定拉取镜像的仓库,默认是k8s.gcr.io
33 kind: ClusterConfiguration
34 kubernetesVersion: v1.20.15				#指定kubernetes版本号
35 networking:
36   dnsDomain: cluster.local
37   podSubnet: "10.244.0.0/16"				#指定pod网段,10.244.0.0/16用于匹配flannel默认网段
38   serviceSubnet: 10.96.0.0/16			#指定service网段
39 scheduler: {}
末尾再添加以下内容
--- 
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs									#把默认的kube-proxy调度方式改为ipvs模式
//在线拉取镜像
kubeadm config images pull --config /opt/k8s、kubeadm-config.yaml
//初始化 master
kubeadm init --config=/opt/k8s/kubeadm-config.yaml --upload-certs | tee kubeadm-init.log
#--upload-certs 参数可以在后续执行加入节点时自动分发证书文件
#tee kubeadm-init.log 用以输出日志
//查看 kubeadm-init 日志
less kubeadm-init.log
//kubernetes配置文件目录
ls /etc/kubernetes/
//存放ca等证书和密码的目录
ls /etc/kubernetes/pki	

在这里插入图片描述

因为kubectl get cs发现节点不健康
在这里插入图片描述

vim kube-controller-manager.yaml

在这里插入图片描述

vim kube-scheduler.yaml

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

6./所有节点部署网络插件flannel

方法一:
//所有节点上传 flannel 镜像 flannel.tar 和网络插件 cni-plugins-linux-amd64-v0.8.6.tgz 到 /opt 目录,master节点上传 kube-flannel.yml 文件
cd /opt
docker load < flannel.tar
mv /opt/cni /opt/cni_bak
mkdir -p /opt/cni/bin
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin
//在 master 节点创建 flannel 资源
kubectl apply -f kube-flannel.yml 
kubeadm join 192.168.169.10:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:5a1431e984bc9f58f7806972c27f993a3e5d5dd03d4bf406fce2ed930672710e
    

去部署node节点

7./在master节点查看节点状态

kubectl get nodes

在这里插入图片描述

在这里插入图片描述

总结

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

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

相关文章

Maven的安装过程

参考地址 https://www.cnblogs.com/hanliukui/p/16842734.html 注意下载包体是bin的包体&#xff1a;Maven – Download Apache Maven 然后ok

echart 绘制一个基础的中国地图

echart&#xff0c;绘制一个基础的中国地图 代码示例 <template><div id"china_map_box"><div id"china_map"></div></div> </template><script> import * as echarts from echarts import chinaJson from ./…

《综合与Design_Compiler》学习笔记——第一章综合综述 第二章verilog语言结构到门级的映射 第三章 使用DC进行综合

文章目录 前言一、综合综述1、综合2、综合的不同层次&#xff08;1&#xff09;逻辑级综合&#xff08;2&#xff09;RTL级综合&#xff08;3&#xff09;行为级综合 二、verilog语言结构到门级的映射三、使用DC进行综合1、定义2、写时序约束3、写环境约束&#xff08;1&#x…

Vite创建vue3+ts+pinia项目流程

Vite 需要 Node.js 版本 14.18&#xff0c;16。然而&#xff0c;有些模板需要依赖更高的 Node 版本才能正常运行&#xff0c;当你的包管理器发出警告时&#xff0c;请注意升级你的 Node 版本(这里建议node版本在16以上)&#xff0c; 推荐使用 pnpm 包管理工具 管理项目 包安装…

Hive 之 beeline 客户端连接

beeline 客户端连接 Hive beeline -u jdbc:hive2://hadoop10:10000 -n hive 我们下期见&#xff0c;拜拜&#xff01;

【Verilog HDL】FPGA-testbench基础知识

&#x1f389;欢迎来到FPGA专栏~testbench基础知识 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能…

前端Vue自定义勾选协议组件 可用于登录 注册等场景

前端Vue自定义勾选协议组件&#xff0c; 可用于登录 注册等场景&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13299 效果图如下&#xff1a; # cc-protocolBox #### 使用方法 使用方法 <!-- agree&#xff1a;是…

【HTML5】svg 绘制图形

文章目录 一、基本介绍二、用法详解2.1、矩形&#xff08;rect&#xff09;2.2、圆形&#xff08;circle&#xff09;2.3、椭圆&#xff08;ellipse&#xff09;2.4、线条&#xff08;line&#xff09;2.5、折线&#xff08;polyline&#xff09;2.6、多边形&#xff08;polygo…

Redis 发布/订阅介绍

目录 ​编辑 一、发布与订阅 6.1 频道 6.1.1 发布 6.1.2 订阅 6.1.3 数据结构 6.1.3.1 订阅&#xff08;channel&#xff09; 6.1.3.2 发布 6.1.3.3 退订 6.2 模式&#xff08;pattern&#xff09; 6.2.1 发布 6.2.2 订阅 6.2.3 数据结构 6.2.3.1 发布 6.2.3.2 订阅 6.2.3.…

登录远程Linux桌面

远程桌面连接主要使用两种协议&#xff0c;一种是Windows上RDP协议&#xff0c;第二种是VNC协议&#xff0c;从使用效果来看&#xff0c;vnc更优秀。 一、VNC 使用x11vnc 1.安装x11vnc sudo apt install x11vnc 2.启动x11vnc x11vnc -passwd orangepi -display :0 -forever…

【线程池】ScheduledExecutorService接口和ScheduledThreadPoolExecutor定时任务线程池使用详解

目录 〇、简介 0.1 ScheduledExecutorService 和 Timer 的区别 一、什么是ScheduledExecutorService&#xff1f; 二、ScheduledThreadPoolExecutor中的方法 2.1 构造方法 2.2 schedule方法 2.3 scheduleAtFixedRate方法 2.4 scheduleWithFixedDelay方法 2.5 setConti…

什么是组件,以及前端各种框架组件的使用方法

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;介绍什么是组件&#xff0c;以及前端各种框架组件的使用方法 目录 什么是组件&#xff0c;请细看关键点 前端常用框架vue2框架的常用组件库vue3框架的常用组件库react框架的常用组件库微信小程序常用…

智能三路CAN总线集线器解决CAN总线集线问题

随着科技的发展&#xff0c;CAN总线通讯再各行各业中应用&#xff0c;再不同的应用中&#xff0c;需要把两路CAN集合到一起&#xff0c;或者把一路CAN分为两路&#xff0c;这时候就需要CAN总线集线器来解决。 CANbridge-300每一路CAN通道都具有数据存储转发至另两路CAN通道的功…

Java——《面试题——分布式篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java…

SQL查询语句语法结构和运行顺序

语法结构&#xff1a;select–from–where–group by–having–order by–limit 运行顺序&#xff1a;from–where–group by–having–order by–limit–select

【Vue3】学习笔记-生命周期

Vue2.x与vue3生命周期 Vue3.0中可以继续使用Vue2.x中的生命周期钩子&#xff0c;但有有两个被更名&#xff1a; beforeDestroy改名为 beforeUnmountdestroyed改名为 unmounted Vue3.0也提供了 Composition API 形式的生命周期钩子&#xff0c;与Vue2.x中钩子对应关系如下&#…

只用一次集合遍历实现树形结构,非递归方式

一般情况下&#xff0c;我们想要实现这种无限层级的树形结构&#xff0c;都是采用递归的方式&#xff0c;但是递归比较占用内存&#xff0c;也容易导致栈溢出&#xff0c;于是只能尝试其它的方法。 下面采用的方式&#xff0c;只需要一次集合的遍历就可以实现树形的结构。 先手…

Spring Boot 中的 @RabbitListener 注解是什么,原理,如何使用

Spring Boot 中的 RabbitListener 注解是什么&#xff0c;原理&#xff0c;如何使用 在 RabbitMQ 中&#xff0c;消息的接收需要通过监听队列来实现。在 Spring Boot 应用程序中&#xff0c;可以使用 RabbitListener 注解来监听队列&#xff0c;并在接收到消息时执行指定的方法…

Java实现OpenAI模型训练

本文章介绍如何用java实现OpenAI模型训练&#xff0c;仅供参考 提前准备工作 OpenAI KEY&#xff0c;获取方式可自行百度需要自备VPN 或 使用国外服务器转发需要训练的数据集&#xff0c;文章格式要求为JSONL&#xff0c;格式内容详见下图&#xff08;尽量不要低于500个问答&…

消息模块的数据模型设计

目录 一、创建POJO映射类 1. message集合 2. message_ref集合 二、MongoDB的联合查询 MessageRef&#xff1a;保存消息接收人相关信息&#xff0c;接收人ID、消息已读未读、消息是否最新接收。 在 MongoDB 里面我们不需要预先去创建集合&#xff0c;只要我们往 MongoDB 里…