【分享】windows11 vmware centos7 搭建k8s完整实验

news2025/1/18 7:37:22

概述

    开年第一天,补充下自己的技术栈。

参考文章:

k8s安装 - 知乎

【Kubernetes部署篇】K8s图形化管理工具Dasboard部署及使用_k8s可视化管理工具-CSDN博客

centos7环境下安装k8s 1.18.0版本带dashboard界面全记录(纯命令版)_sysconfig1.18.0版本-CSDN博客

侵删。

步骤

一、安装vmware

略,随手一堆教程

注意避坑windows10+的hype-v和低版本vmware共存的问题,我记得高版本vmware已经没有这个问题了。

二、vmware安装centos

略,随手一堆教程

(这里包含vmware安装centos,桥接网络,开放ssh访问等内容)

需要三个节点(安装好其中一个后,yum install vim, yum install yum-utils),然后关闭虚拟机电源,克隆,完整克隆

分别编辑三个节点的ip信息。

虚拟机设置为桥接模式,使用mobaxterm等进行ssh链接。vmware开放ssh访问等需要自行百度。

三、安装docker

增加docker源,如果2中没有安装yum-utils需要先安装

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo    —这里使用的是阿里云的仓库

安装最新版本

yum install docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker
systemctl enable docker --now      --启动docker,并在开机启动中加入

 查看状态

systemctl status docker
 四、安装k8s

安装k8s前配置修改

----------------------------------------(三个节点都要执行) start --------------------------------------------------

修改主机名:

hostnamectl set-hostname xxxx

 关闭selinux

将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0    --临时关闭
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config    --永久关闭

 关闭swap

关闭swap
swapoff -a    --临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab    --永久关闭

允许 iptables 检查桥接流量 

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF


cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system.   --重启

 关闭防火墙

5.关闭防火墙
为保证后续端口访问方便,这里关闭防火墙
systemctl stop firewalld     --临时关闭防火墙
systemctl disable firewalld  --永久关闭防火墙

k8s下载地址 

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

安装 kubelet、kubeadm、kubectl 

yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes

 默认启动

systemctl enable --now kubelet

 下载镜像

tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
   
--执行脚本
chmod +x ./images.sh && ./images.sh

--查看下载的镜像
docker images

初始化主节点:

#所有机器添加master域名映射,以下需要修改为自己的
echo "xxx.xxx.xxx.xxx  cluster-endpoint" >> /etc/hosts    --xxx.xxx.xxx.xxx 地址为master的ip信息 --cluster-endpoint 可以随便起名
添加上述命令含义:需让所有节点知道master是哪一个
#主节点初始化
kubeadm init \
--apiserver-advertise-address=xxx.xxx.xxx.xxx \    --xxx.xxx.xxx.xxx为master节点的ip
--control-plane-endpoint=cluster-endpoint \        --cluster-endpoint 上面起的名字
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \   --镜像仓库名字
--kubernetes-version v1.20.9 \  --kubernetes的版本号
--service-cidr=10.96.0.0/16 \  
--pod-network-cidr=192.168.0.0/16

note:这里建议service和pod的ip信息不要改,如果要改,service和pod的ip段不能重复,也不能和服务器的ip段重复

 如果拉取镜像失败,使用 --image-repository registry.aliyuncs.com/google_containers
出现success之后,记得复制token一类的,如下:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.9.200.52:6443 --token v4pesl.jc5jz9y8gx495lv8 \
    --discovery-token-ca-cert-hash sha256:d27c226ae6d16b5c70638df2d1d40459f73ae4cbdc3f548e088049a97707c1e3

----------------------------------------(三个节点都要执行) end -------------------------------------------------- 

主节点执行:

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

 查看节点状态:

kubectl get nodes

查看主节点状态不对,目前是NotReady,这个问题是因为网络组件未配置导致的,在主节点初始化日志中有这一步

kubectl get pods -A

 下载 https://docs.projectcalico.org/v3.20/manifests/calico.yaml

上传到主节点,或者直接wget

使用命令加载yaml配置文件
kubectl apply -f calico.yaml

 在查看应该就是ready了

kubectl get nodes

从节点加入主节点:

把安装成功后,复制保存下来的话抠出 

kubeadm join xxxx

出现如下,即为成功

 

 五、安装k8s-dashboard

wget https://gitee.com/qinziteng/K8S/raw/master/YMAL/recommended.yaml

上传到master,并且编辑vim recommended.yaml 找到Service 8443这条

增加type:NodePort,原本默认是本机访问,增加这个后,可以方便我们浏览器访问

修改完成后

kubectl apply -f recommended.yaml

4、查看状态 默认在 kubernetes-dashboard 名称空间下:

kubectl get pods -n kubernetes-dashboard


5、查看Service暴露端口,我们使用这个端口进行访问:

kubectl get svc -n kubernetes-dashboard

 

通过Token令牌登入
1、创建一个 ClusterRoleBinding 对象,并赋予cluster-admin权限,即访问整个集群的权限,包括查看和修改所有资源的权限

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard


命令参数解析:

create:创建资源的命令
clusterrolebinding:资源类型,表示创建一个 ClusterRoleBinding 对象
dashboard-cluster-admin:ClusterRoleBinding 对象的名称
clusterrole=cluster-admin:指定要绑定的 ClusterRole,这里是 cluster-admin,即具有完全访问权限的 ClusterRole。
serviceaccount=kubernetes-dashboard:kubernetes-dashboard:指定要绑定的 ServiceAccount,这里是 kubernetes-dashboard 命名空间下的 kubernetes-dashboard ServiceAccount
查看创建的secret

kubectl get secret -n kubernetes-dashboard


2、获取token信息:

kubectl describe secret $(kubectl get secret -n kubernetes-dashboard|grep kubernetes-dashboard-token*|awk '{print $1}') -n kubernetes-dashboard|egrep  -w token:

查看token信息如下圈住信息:

3、将token信息复制到浏览器下面即可管理K8S集群了

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

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

相关文章

通俗易懂地解释OpenAI Sora视频生成的特点有哪些?与Runway Gen2、Pika有什么区别?缺点是什么?

OpenAI的Sora模型是最近两天最火热的模型。它生成的视频无论是清晰度、连贯性和时间上都有非常好的结果。在Sora之前&#xff0c;业界已经有了很多视频生成工具和平台。但为什么Sora可以引起如此大的关注&#xff1f;Sora生成的视频与此前其它平台生成的视频到底有哪些区别&…

MATLAB知识点:meshgrid函数(★★★★☆)返回二维网格坐标(在MATLAB中经常用于生成绘制三维图的数据)

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章&#xff1a;课后习题讲解中拓展的函数 在讲解第三…

入门级10寸加固行业平板—EM-I10J

亿道信息以其坚固耐用的智能终端设备而闻名&#xff0c;近日发布了一款理想入门级 10 英寸加固平板电脑—I10J。 EM-I10J​​ 这是一款 10 英寸的平板电脑&#xff0c;主要运行 Windows 10操作系统&#xff0c;带有硬化塑料外壳&#xff0c;具有 IP65 防水防尘功能和 MIL-STD 8…

踩坑实录(Fourth Day)

今天开工了&#xff0c;其实还沉浸在过年放假的喜悦中……今天在自己写 Vue3 的项目&#xff0c;虽说是跟着 B 站在敲&#xff0c;但是依旧是踩了一些个坑&#xff0c;就离谱……照着敲都能踩到坑&#xff0c;我也是醉了…… 此为第四篇&#xff08;2024 年 02 月 18 日&#x…

2024免费版EasyRecovery软件有哪些功能限制?

EasyRecovery软件的主要功能包括&#xff1a; 数据恢复&#xff1a;这是EasyRecovery软件的核心功能。它可以恢复因各种原因丢失或删除的数据&#xff0c;无论是由于磁盘格式化、文件删除还是其他因素。EasyRecovery使用高级的数据恢复算法&#xff0c;能够快速扫描整个磁盘&a…

python绘制k线图均线图

AAPL.csv 数据文件 Date,Close,Volume,Open,High,Low 06/23/2023,$186.68,53117000,$185.55,$187.56,$185.01 06/22/2023,$187.00,51245330,$183.74,$187.045,$183.67 06/21/2023,$183.96,49515700,$184.90,$185.41,$182.5901 06/20/2023,$185.01,49799090,$184.41,$1…

互联网加竞赛 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习多目标跟踪 …

基于Doris构建亿级数据实时数据分析系统

背景 随着公司业务快速发展&#xff0c;对业务数据进行增长分析的需求越来越迫切&#xff0c;与此同时我们的业务数据量也在快速激增、每天的数据新增量大概在30w 左右&#xff0c;一年就会产生1 个亿的数据&#xff0c;显然基于传统MySQL数据库已经无法支撑满足以上需求 基于上…

《Linux 简易速速上手小册》第2章: 命令行的艺术(2024 最新版)

文章目录 2.1 基本 Linux 命令2.1.1 重点基础知识2.1.2 重点案例&#xff1a;整理下载文件夹2.1.3 拓展案例 1&#xff1a;批量重命名文件2.1.4 拓展案例 2&#xff1a;查找并删除特定文件 2.2 文件和目录管理2.2.1 重点基础知识2.2.2 重点案例&#xff1a;部署一个简单的网站2…

RabbitMQ鉴权设计以及相关探讨

文章目录 1. rabbitmq的鉴权设计2. rabbitmq鉴权应用范围3. rabbitmq鉴权的常用方法3.1 用户管理3.2 角色管理3.3 权限管理 4. 默认鉴权4.1 默认用户4.2 默认角色 5. 参考文档 鉴权&#xff0c;分别由鉴和权组成 鉴&#xff1a; 表示身份认证&#xff0c;认证相关用户是否存在…

AlexNet的出现推动深度学习的巨大发展

尽管AlexNet&#xff08;2012&#xff09;的代码只比LeNet&#xff08;1998&#xff09;多出几行&#xff0c;但学术界花了很多年才接受深度学习这一概念&#xff0c;并应用其出色的实验结果。 AlexNet&#xff08;由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同设计…

Docker原理及概念相关

Docker最核心的组件 image&#xff1a;镜像&#xff0c;构建容器&#xff0c;也可以通过Dockerfile文本描述镜像的内容。 (我们将应用程序运行所需的环境&#xff0c;打包为镜像文件) Container&#xff1a;容器 (你的应用程序&#xff0c;就跑在容器中 ) 镜像仓库(dockerhub)(…

Java学习笔记2024/2/18

1.API 1.1API概述 什么是API API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要学习这…

kali无线渗透之蓝牙原理与探测与侦听

“传统蓝牙”规范在2.4GHz的ISM波段上定义了79个信道&#xff0c;每个信道有1MHz的带宽。设备在这些信道中以每秒1600次的频率进行跳转&#xff0c;换句话说&#xff0c;就是每微秒625次跳转。这项信道跳转技术被称为“跳频扩频”(Frequency HoppingSpread Spectrum&#xff0c…

电路设计(20)——数字电子钟的multism仿真

1.设计要求 使用数字芯片&#xff0c;设计一个电子钟&#xff0c;用数码管显示&#xff0c;可以显示星期&#xff0c;时、分、秒&#xff0c;可以有按键校准时间。有整点报警功能。 2.设计电路 设计好的multism电路图如下所示 3.芯片介绍 时基脉冲使用555芯片产生。在仿真里面…

刷题Day2

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;刷题日记 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于IT的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x1f601; 喜欢…

Win11家庭版,鸿蒙DevEco 模拟器启动失败,成功解决了

本人电脑系统&#xff1a;Windows 11 家庭版 正常安装模拟器后&#xff0c;启动失败&#xff0c;查了各种方法&#xff0c;最终发现是电脑虚拟机未启动导致的。 官方给出的解决方法&#xff08;对我无效&#xff01;&#xff01;&#xff01;&#xff09;&#xff1a; 我的…

uniapp富文本文字长按选中(用于复制,兼容H5、APP、小程序三端)

方案&#xff1a;使用u-parse的selectable属性 <u-parse :selectable"true" :html"content"></u-parse> 注意&#xff1a;u-parse直接使用是不兼容小程序的&#xff0c;需要对u-parse进行改造&#xff1a; 1. 查看u-parse源码发现小程序走到以…

使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳有哪些优点?

使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳有以下优点&#xff1a; 高音质表现&#xff1a;通过优化设计和工艺&#xff0c;可以有效提高耳机的音质表现。倒模工艺可以更好地贴合耳机驱动单元&#xff0c;减少声音散射和反射&#xff0c;提高声音的清晰度和质感。隔…

【regex】正则表达式

集合 [0-9.] [0-9.\-] 例子 正则表达式&#xff0c;按照规则写&#xff0c;写的时候应该不算困难&#xff0c;但是可读性差 不同语言中regex会有微小的差异 vim 需要转义&#xff0c; perl/python中不需要转义 锚位 \b am\b i am 命名 / 命名捕获组 ( 捕获组&#xff08;…