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

概述

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

参考文章:

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集群了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Keras可以使用的现有模型

官网&#xff1a;https://keras.io/api/applications/ 一些使用的列子&#xff1a; ResNet50&#xff1a;分类预测 import keras from keras.applications.resnet50 import ResNet50 from keras.applications.resnet50 import preprocess_input, decode_predictions import nu…

基于scrapy框架的单机爬虫与分布式爬虫

我们知道&#xff0c;对于scrapy框架来说&#xff0c;不仅可以单机构建复杂的爬虫项目&#xff0c;还可以通过简单的修改&#xff0c;将单机版爬虫改为分布式的&#xff0c;大大提高爬取效率。下面我就以一个简单的爬虫案例&#xff0c;介绍一下如何构建一个单机版的爬虫&#…

修改vue-layer中title

左侧目录树点击时同步目录树名称 试了很多方法 layer.title(新标题&#xff0c;index)不知道为啥不行 最后用了获取html树来修改了 watch: {$store.state.nowTreePath: function(newVal, oldVal) {if (document.querySelectorAll(".lv-title") && document.q…

AD高速板常见问题和过流自锁

可以使用电机减速器来增大电机的扭矩&#xff0c;低速运行的步进电机更要加上减速机 减速电机就是普通电机加上了减速箱&#xff0c;这样便降低了转速增大了扭矩 HDMI布线要求&#xff1a; 如要蛇形使其等长&#xff0c;不要在HDMI的一端绕线。 HDMI走线时两边拉线&#xff0…

见智未来:数据可视化引领智慧城市之潮

在数字时代的浪潮中&#xff0c;数据可视化崭露头角&#xff0c;为打造智慧城市注入了强大的活力。不再被深奥的数据所束缚&#xff0c;我们通过数据可视化这一工具&#xff0c;可以更加接近智慧城市的未来。下面我就以可视化从业者的角度来简单聊聊这个话题。 数据可视化首先为…

wps快速生成目录及页码设置(自备)

目录 第一步目录整理 标题格式设置 插入页码&#xff08;罗马和数字&#xff09; 目录生成&#xff08;从罗马尾页开始&#xff09; ​编辑目录格式修改 第一步目录整理 1罗马标题 2罗马标题1一级标题 1.1 二级标题 1.2二级标题2一级标题 2.1 二级标题 2.2二级标题3一级标…

HTML5+CSS3+JS小实例:锥形渐变彩虹按钮

实例:锥形渐变彩虹按钮 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /…

【ansible】认识ansible,了解常用的模块

目录 一、ansible是什么&#xff1f; 二、ansible的特点&#xff1f; 三、ansible与其他运维工具的对比 四、ansible的环境部署 第一步&#xff1a;配置主机清单 第二步&#xff1a;完成密钥对免密登录 五、ansible基于命令行完成常用的模块学习 模块1&#xff1a;comma…

huggingface库LocalTokenNotFoundError:需要提供token

今天刚开始学习huggingface&#xff0c;跑示例的时候出了不少错&#xff0c;在此记录一下&#xff1a; (gpu) F:\transformer\transformers\examples\pytorch\image-classification>.\run.bat Traceback (most recent call last):File "F:\transformer\transformers\e…

6.s081 学习实验记录(七)Multithreading

文章目录 一、Uthread: switching between threads简介提示实验代码实验结果 二、Using threads简介实验代码 三、Barrier简介实验代码实验结果 一、Uthread: switching between threads 简介 切换到 thread 分支 git fetchgit checkout threadmake clean 实现用户态线程的…

SHOT特征描述符、对应关系可视化以及ICP配准

一、SHOT特征描述符可视化 C #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/search/kdtree.h> #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d_omp.h>//使用OMP需要添加的头文件 #include <boo…

考完PMP如何让学习价值最大化?考PRINCE2!

01什么是PRINCE2 PRINCE2的全称是Project IN Controlled Environment。也就是受控环境下的项目管理&#xff0c;国际项目管理师认证&#xff0c;在国际上被称为王者认证。PRINCE2描述了如何以一种逻辑性的、有组织的方法&#xff0c;按照明确的步骤对项目进行管理。 95%以上全…

软件实例分享,酒店酒水寄存管理系统软件教程

软件实例分享&#xff0c;酒店酒水寄存管理系统软件教程 一、前言 以下软件教程以 佳易王酒水寄存管理系统软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、寄存的商品名称可以预先设置 2、寄存人可以使用手.机号识别 3、会员充值…

C#,计算几何,贝塞耳插值(Bessel‘s interpolation)的算法与源代码

Friedrich Wilhelm Bessel 1 贝塞耳插值&#xff08;Bessels interpolation&#xff09; 首先要区别于另外一个读音接近的插值算法&#xff1a;贝塞尔插值&#xff08;Bzier&#xff09;。 &#xff08;1&#xff09;读音接近&#xff0c;但不是一个人&#xff1b; &#x…

嵌入式调试工具之GDB

在单片机开发中&#xff0c;我们可以通过集成式的IDE 来进行调试&#xff0c;比如 MDK、IAR 等。 GDB 工具是 GNU 项目调试器&#xff0c;基于命令行使用。和其他的调试器一样&#xff0c;可使用 GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等&#…

基于SSM的宁夏旅游网站平台(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的宁夏旅游网站平台&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring …

《苍穹外卖》知识梳理P11-Apache POI导出报表

一.Apache POI 可以通过Apache POI处理excel文件&#xff0c;核心操作是读和写 应用场景 银行网银交易明细各种业务系统导出Excel报表批量导入业务数据 使用步骤 1.导入maven坐标 <dependency><groupId>org.apache.poi</groupId><artifactId>poi&…

使用C++,实现高精度加减乘除法运算!

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 我的专栏&#xff1a; \mathcal{{\color{Green} 我的专栏&#xff1a;} } 我的专栏&#xff1a; 《精选文章》《算法》《每日一道编程题》《高精度算法》 文章目录 前言高精度计算初始模版string 转…

游泳听音乐最好的耳机推荐,游泳防水耳机排行榜推荐

在当今社会&#xff0c;随着人民生活水平的不断提高&#xff0c;人们对健康生活的追求也越来越高。运动成为了人们日常生活中不可或缺的一部分&#xff0c;而游泳作为一种全身性的锻炼方式&#xff0c;更是受到了广大人群的喜爱。然而&#xff0c;对于音乐爱好者来说&#xff0…

【机构vip教程】​python(1):python正则表达式匹配指定的字符开头和指定的字符结束

一&#xff0c;使用python的re.findall函数&#xff0c;匹配指定的字符开头和指定的字符结束 代码示例&#xff1a; 1 import re 2 # re.findall函数;匹配指定的字符串开头和指定的字符串结尾(前后不包含指定的字符串) 3 str01 hello word 4 str02 re.findall((?<e).*?…