基于Kubeadm部署k8s集群:下篇
继续上篇内容
目录
7、安装flannel
8、节点管理命令
三、安装Dashboard UI
1、部署Dashboard
2、开放端口设置
3、权限配置
7、安装flannel
Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。
[root@k8s-master ~]# docker load < flannel_v0.12.0-amd64.tar
256a7af3acb1: Loading layer [==================================================>] 5.844MB/5.844MB
d572e5d9d39b: Loading layer [==================================================>] 10.37MB/10.37MB
57c10be5852f: Loading layer [==================================================>] 2.249MB/2.249MB
7412f8eefb77: Loading layer [==================================================>] 35.26MB/35.26MB
05116c9ff7bf: Loading layer [==================================================>] 5.12kB/5.12kB
Loaded image: quay.io/coreos/flannel:v0.12.0-amd64
所有主机:
master上传kube-flannel.yml,所有主机上传flannel_v0.12.0-amd64.tar
[root@k8s-master ~]# ll
总用量 52496
-rw-------. 1 root root 1257 7月 18 16:47 anaconda-ks.cfg
-rw-r--r--. 1 root root 53746688 12月 16 2020 flannel_v0.12.0-amd64.tar
-rw-r--r--. 1 root root 895 8月 10 14:18 init-config.yaml
[root@k8s-master ~]# docker load < flannel_v0.12.0-amd64.tar
256a7af3acb1: Loading layer [==================================================>] 5.844MB/5.844MB
d572e5d9d39b: Loading layer [==================================================>] 10.37MB/10.37MB
57c10be5852f: Loading layer [==================================================>] 2.249MB/2.249MB
7412f8eefb77: Loading layer [==================================================>] 35.26MB/35.26MB
05116c9ff7bf: Loading layer [==================================================>] 5.12kB/5.12kB
Loaded image: quay.io/coreos/flannel:v0.12.0-amd64
三台主机安装cni插件,这些文件都可以从官网获取
[root@k8s-master ~]# ll
总用量 88512
-rw-------. 1 root root 1257 7月 18 16:47 anaconda-ks.cfg
-rw-r--r--. 1 root root 36878412 11月 10 2021 cni-plugins-linux-amd64-v0.8.6.tgz
[root@k8s-master ~]# tar xf cni-plugins-linux-amd64-v0.8.6.tgz
[root@k8s-master ~]# cp flannel /opt/cni/bin/
[root@k8s-master ~]# kubectl apply -f kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged created
Warning: rbac.authorization.k8s.io/v1beta1 ClusterRole is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRole
clusterrole.rbac.authorization.k8s.io/flannel created
Warning: rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds-amd64 created
daemonset.apps/kube-flannel-ds-arm64 created
daemonset.apps/kube-flannel-ds-arm created
daemonset.apps/kube-flannel-ds-ppc64le created
daemonset.apps/kube-flannel-ds-s390x created
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 7m53s v1.19.0
k8s-node01 Ready <none> 6m12s v1.19.0
k8s-node02 Ready <none> 6m8s v1.19.0
已经是ready状态了
第一个拉取镜像时间会比较长,先做后面的不影响
[root@k8s-master ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d56c8448f-4rvnr 1/1 Running 0 10m
coredns-6d56c8448f-9mn9h 1/1 Running 0 10m
etcd-k8s-master 1/1 Running 0 10m
kube-apiserver-k8s-master 1/1 Running 0 10m
kube-controller-manager-k8s-master 1/1 Running 0 10m
kube-flannel-ds-amd64-2h859 1/1 Running 0 2m23s
kube-flannel-ds-amd64-6gqct 1/1 Running 0 2m23s
kube-flannel-ds-amd64-rvljf 1/1 Running 0 2m23s
kube-proxy-bxh2m 1/1 Running 0 8m28s
kube-proxy-s7jxv 1/1 Running 0 10m
kube-proxy-xdr5v 1/1 Running 0 8m30s
kube-scheduler-k8s-master 1/1 Running 0 10m
8、节点管理命令
以下命令无需执行,仅作为了解
重置master和node配置
[root@k8s-master ~]# kubeadm reset
删除node配置
[root@k8s-master ~]# kubectl delete node k8s-node01[root@k8s-node01 ~]# docker rm -f $(docker ps -aq)
[root@k8s-node01 ~]# systemctl stop kubelet
[root@k8s-node01 ~]# rm -rf /etc/kubernetes/*
[root@k8s-node01 ~]# rm -rf /var/lib/kubelet/*
三、安装Dashboard UI
1、部署Dashboard
dashboard的github仓库地址:https://github.com/kubernetes/dashboard
代码仓库当中,有给出安装示例的相关部署文件,我们可以直接获取之后,直接部署即可
[root@k8s-master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
默认这个部署文件当中,会单独创建一个名为kubernetes-dashboard的命名空间,并将kubernetes-dashboard部署在该命名空间下。dashboard的镜像来自docker hub官方,所以可不用修改镜像地址,直接从官方获取即可。
2、开放端口设置
在默认情况下,dashboard并不对外开放访问端口,这里简化操作,直接使用nodePort的方式将其端口暴露出来,修改serivce部分的定义:
[root@k8s-master ~]# vim recommended.yaml
30 ---31 32 kind: Service33 apiVersion: v134 metadata:35 labels:36 k8s-app: kubernetes-dashboard37 name: kubernetes-dashboard38 namespace: kubernetes-dashboard39 spec:40 type: NodePort41 ports:42 - port: 44343 targetPort: 844344 nodePort: 3244345 selector:46 k8s-app: kubernetes-dashboard47 48 ---192 image: kubernetesui/dashboard:v2.0.0
276 image: kubernetesui/metrics-scraper:v1.0.4
3、权限配置
配置一个超级管理员权限
[root@k8s-master ~]# kubectl apply -f recommended.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
[root@k8s-master ~]# kubectl get pods -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-7b59f7d4df-rhl9r 1/1 Running 0 37s
kubernetes-dashboard-74d688b6bc-whtfr 1/1 Running 0 37s
[root@k8s-master ~]# kubectl get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-6d56c8448f-fghft 1/1 Running 0 37m 10.244.2.2 k8s-node02 <none> <none>
kube-system coredns-6d56c8448f-t7jzh 1/1 Running 0 37m 10.244.1.2 k8s-node01 <none> <none>
kube-system etcd-k8s-master 1/1 Running 0 38m 192.168.147.138 k8s-master <none> <none>
kube-system kube-apiserver-k8s-master 1/1 Running 0 38m 192.168.147.138 k8s-master <none> <none>
kube-system kube-controller-manager-k8s-master 1/1 Running 0 38m 192.168.147.138 k8s-master <none> <none>
kube-system kube-flannel-ds-amd64-2vfvg 1/1 Running 0 30m 192.168.147.139 k8s-node01 <none> <none>
kube-system kube-flannel-ds-amd64-88g4t 1/1 Running 0 30m 192.168.147.140 k8s-node02 <none> <none>
kube-system kube-flannel-ds-amd64-fbn4v 1/1 Running 0 30m 192.168.147.138 k8s-master <none> <none>
kube-system kube-proxy-b26zq 1/1 Running 0 36m 192.168.147.139 k8s-node01 <none> <none>
kube-system kube-proxy-jzjkq 1/1 Running 0 36m 192.168.147.140 k8s-node02 <none> <none>
kube-system kube-proxy-r9ckd 1/1 Running 0 37m 192.168.147.138 k8s-master <none> <none>
kube-system kube-scheduler-k8s-master 1/1 Running 0 38m 192.168.147.138 k8s-master <none> <none>
kubernetes-dashboard dashboard-metrics-scraper-7b59f7d4df-rhl9r 1/1 Running 0 75s 10.244.2.3 k8s-node02 <none> <none>
kubernetes-dashboard kubernetes-dashboard-74d688b6bc-whtfr 1/1 Running 0 75s 10.244.1.3 k8s-node01 <none> <none>
使用火狐浏览器登录IP,选择高级,接受风险
可以看到出现如上图画面,需要我们输入一个kubeconfig文件或者一个token。事实上在安装dashboard时,也为我们默认创建好了一个serviceaccount,为kubernetes-dashboard,并为其生成好了token,我们可以通过如下指令获取该sa的token:
[root@k8s-master ~]# kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{print $2}'
kubernetes-dashboard-token-4fjtj
kubernetes.io/service-account-token
eyJhbGciOiJSUzI1NiIsImtpZCI6IklVQ1J5cklyajJrRkd5MWV0Z0ZrRDNLQVVoWXZXM3I5RGIxMFl1d1I1NzQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi00Zmp0aiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjQ0ZTMxYjNhLWM5MGUtNGFiOS05Y2VlLTNkY2I1MWJiMjdkNiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.ZyrPFXYexeoLbz48ZZ7WHglk00WhOpU-Dabb1ZR088uWA8Gx2rmi-SbuFQ7qyliXpCIDG6jkKMDZXYR0h7bWG8S0Fx2OhFZmqcwZ4GbenmQc7MYLD1w1HQHi8SRlDUzQ8pJ_hMHQOKQsUa8JMyXvzRXD998H2WFQHJe95ke8BeDJ5oCFwS-GIVwwA1h4DHUuhjSnvPBhi0wuiZhK1VDXqfx4cq6ko83tyRfjAAsCsF7bcnOX1n0y8tUrK0WDmJMnhBB5EGK8O8xNjqYqzWt_GyHY-AQG8tnnDtCBw-e5oMZvdfFyk5XSSqaUBYTm_ebMjKvvTMWmxPcqMuGrYUAglw
相关文章:

基于Kubeadm部署k8s集群:下篇
继续上篇内容 目录 7、安装flannel 8、节点管理命令 三、安装Dashboard UI 1、部署Dashboard 2、开放端口设置 3、权限配置 7、安装flannel Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kuber…...
【Python matplotlib】鼠标右键移动画布
在 Matplotlib 中,鼠标右键移动画布的功能通常是通过设置交互模式来实现的,例如使用 mpl_connect 方法。以下是一个示例代码,展示如何在 Matplotlib 中使用 mpl_connect 方法来实现鼠标右键移动画布的功能: import numpy as np …...
Sleuth+Zipkin服务链路追踪
微服务架构是一个分布式架构,它按业务划分服务单元。一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务…...

100G光模块的应用案例分析:电信、云计算和大数据领域
100G光模块是一种高速光模块,由于其高速率和低延迟的特性,在电信、云计算和大数据领域得到了广泛的应用。在本文中,我们将深入探讨100G光模块在这三个领域的应用案例。 一、电信领域 在电信领域,100G光模块被广泛用于构建高速通…...

MongoDB安装和配置
一、MongoDB安装和配置 1、进入官网下载你所需要的安装版本,点击直通官网 Step1:进入官网后,将看到如下界面,点击上方导航栏Products,找到Community Server Step2:选择自己需要的版本、系统和压缩方式 2、下…...

解决createRoot is not a function
报错: 出现的原因:在于把react18使用的vite构建,在开发中因react版本太高与其他库不兼容,而在降级的时候,出现以上dom渲染出现报错。 解决:将 src/index.j文件改成如下 import React from react; import…...
【Windows 常用工具系列 6 -- CSDN字体格式(字体、颜色、大小)、背景色设置】
文章目录 背景字体大小设置字体颜色设置字体类型背景色 背景 Markdown是一种轻量级标记语言,它的目标是实现“易读易写”。创立于2004年,由约翰格鲁伯(John Gruber)和亚伦斯沃茨(Aaron Swartz)共同设计。 …...
带着问题学习分布式系统
写在前面 听过很多道理,却依然过不好这一生。 看过很多关于学习的技巧、方法,却没应用到自己的学习中。 随着年纪变大,记忆力越来越差,整块的时间也越来越少,于是,越来越希望能够更高效的学习。学习是一种习…...

element vue2 动态添加 select+tree
难点在 1 添加一组一组的渲染 是往数组里push对象 循环的;但是要注意对象的结构! 因为这涉及到编辑完成后,表单提交时候的 校验! 是校验每一个select tree里边 是否勾选 2 是在后期做编辑回显的时候 保证后端返回的值 是渲染到 select中的tr…...
MySQL Linux自建环境备份至远端服务器自定义保留天数
环境准备 linux下安装mysql请看 Linux环境安装单节点mysql8.0.16 系统版本: CentOS 7 软件版本: mysql8.0.16 备份策略与实现方法 此次备份依赖mysql自带命令mysqldump与linux下crontab命令(定时任务) mysqldump mysqldump客户实用程序执行 逻辑备份,产生一组能够被执行…...

2023下半年软考改成机考,对考生有哪些影响?
软考改革成无纸化考试已经实锤。根据陕西软考办官网的消息,从2023年11月起,软考的所有科目都将改为机器考试形式。详情请参阅: 那么软考考试改为机考后,对我们会有哪些影响呢?我来简单概括一下。 1、复习的方法可以根…...

MySQL存储结构及索引
文章目录 MySQL结构1.2存储引擎介绍1.3存储引擎特点InnoDB逻辑存储结构 MyISAMMemory区别及特点存储引擎选择 索引索引概述索引结构BTreeHash索引分类聚集索引&二级索引索引语法SQL性能分析索引优化最左前缀法则范围查询字符串不加引号模糊查询or连接条件数据分布影响覆盖索…...

2023 RISC-V中国峰会 安全相关议题汇总
目录 1、The practical use cases of the RISC-V IOPMP 2、构建安全可信、稳定可靠的RISC-V安全体系 3、Enhancing RISC-V Debug Security with hardware-based isolation 4、Closing a side door: Designing high-performance RISC-V core resilient to branch prediction…...

要过软考,务必先搞清楚这3点
前段时间软考成绩出来了,大家都过了没? 我看好多人都说早上的题目稳过,下午的好多都挂了。 软考每年这个通过率,确实是一言难尽。 到底怎么样才能过,自学、培训,各种诀窍,五花八门。 但考不过…...

windows常用shell命令大全
简介 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本。更主要的是基于界面引导Path与命令行直达速度是难以比拟的。另外Geek很大一部分是键盘控,而非鼠标流的。 整理Windows的常用Shell命令,一方面帮助深入学习Mysql…...

skywalking忽略调用链路中的指定异常
文章目录 一、介绍二、演示项目介绍1. 支付服务2. 订单服务 三、项目演示1. 未忽略异常2. 忽略异常修改配置使用注解 四、结论 往期内容 一、skywalking安装教程 二、skywalking全链路追踪 三、skywalking日志收集 一、介绍 在前面介绍在微服务项目中使用skywalking进行全链…...

学习笔记|printf函数的实现|不同操作系统中的换行|数的进制:2进制、10进制、16进制转换|STC32G单片机视频开发教程(冲哥)|第五集:C语言基础
文章目录 1.C语言 printf函数的实现Tips:ASCII码表Tips:找不到头文件怎么办?主函数添加程序:常规用法:Tips:不同操作系统中的换行 ⒉数的进制:2进制、10进制、16进制.常见的对应:应用:整体端口的操作 3.C语…...
线性代数复习公式整理(自用/持续更新)
第一章 行列式 设A、B为n阶矩阵 ∣ A T ∣ ∣ A ∣ \left | A^T \right | \left | A \right | AT ∣A∣ ∣ A m ∣ ∣ A ∣ m \left | A^m \right | \left | A \right | ^m ∣Am∣∣A∣m ∣ k A ∣ k n ∣ A ∣ \left | kA \right | k^n\left | A \right | ∣kA∣kn∣A…...
QEMU源码全解析34 —— Machine(4)
接前一篇文章:QEMU源码全解析33 —— Machine(3) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 特此致谢! 上一回围绕DEF…...
引用Boost库 CMakeList的写法
引用Boost库 CMakeList的写法 flyfish 环境arm cmake_minimum_required(VERSION 3.5)project(example LANGUAGES CXX)set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON)set(BOOST_PREFIX /media/Boost/build/out/arm64-v8a/) set(BOOST_INCLUDE_DIR "${…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

【java面试】微服务篇
【java面试】微服务篇 一、总体框架二、Springcloud(一)Springcloud五大组件(二)服务注册和发现1、Eureka2、Nacos (三)负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...