云计算实训49——k8s环镜搭建(续2)

news2024/11/7 17:59:35

一、Metrics 部署

在新版的 Kubernetes 中系统资源的采集均使⽤ Metrics-server,可 以通过 Metrics 采集节点和 Pod 的内存、磁盘、CPU和⽹络的使⽤ 率。

(1)复制证书到所有 node 节点

将 master 节点的 front-proxy-ca.crt 复制到所有 Node 节点,每有 ⼀个节点执⾏⼀次,仅需修改命令内的 node 节点主机名即可。

[root@k8s-master calico]# scp 
/etc/kubernetes/pki/front-proxy-ca.crt k8snode01:/etc/kubernetes/pki/front-proxy-ca.crt
# 向node01节点发送代理证书
front-proxy-ca.crt                               
 100% 1123   937.0KB/s   00:00    
[root@k8s-master calico]# scp 
/etc/kubernetes/pki/front-proxy-ca.crt k8snode02:/etc/kubernetes/pki/front-proxy-ca.crt
# 向node02节点发送代理证书
front-proxy-ca.crt                               
 100% 1123   957.4KB/s   00:00    
# 若有其他node节点,按照格式执⾏下⾯命令,这⾥不⽤执⾏,因
为node只有两台主机
[root@k8s-master calico]# scp 
/etc/kubernetes/pki/front-proxy-ca.crt k8snode03:/etc/kubernetes/pki/front-proxy-ca.crt

(2)安装 metrics server

[root@k8s-master calico]# cd /root/k8s-hainstall/kubeadm-metrics-server

# 添加metric server的pod资源

[root@k8s-master] kubeadm-metrics-server]# kubectl create -f comp.yaml 

(3)查看 metrics server 状态

# 在kube-system命名空间下查看metrics server的pod运⾏状态
[root@master kubeadm-metrics-server]# kubectl get po -n kube-system -l k8s-app=metrics-server 

NAME                             READY   STATUS   
RESTARTS   AGE
metrics-server-8df99c47f-mkbfd   1/1     Running   0         34s
 # 查看node节点的系统资源使⽤情况

[root@master kubeadm-metrics-server]# kubectl top node

NAME         CPU(cores)   CPU%   MEMORY(bytes)   
MEMORY%   
k8s-node01   51m          1%     831Mi           23%       
k8s-node02   55m          1%     931Mi           25%       
master       107m         2%     1412Mi          39%  
     
[root@master kubeadm-metrics-server]# kubectl top po -A

二、Dashboard部署

Dashboard ⽤于展示集群中的各类资源,同时也可以通过 Dashboard 实时查看 Pod 的⽇志和在容器中执⾏⼀些命令等。

(1)安装组件

[root@master kubeadm-metrics-server]# cd /root/k8s-ha-install/dashboard/

# 建⽴dashboard的pod资源

[root@master dashboard]# kubectl create -f . 

(2)登录 dashboard

如果是⾕歌浏览器,需要在启动⽂件中加⼊下⾯的启动参数,⽤于解决⽆法访问 Dashboard的问题

--test-type --ignore-certificate-errors

(3)更改 svc 模式

[root@master dashboard]# kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard 
# edit:进⼊kubernetes的⽂本编辑器
# svc:指定某个服务项,这⾥指定的是kubernetes-dashboard
# -n:指定命名空间,kubernetes-dashboard
# 命令执⾏后相当于进⼊vim⽂本编辑器,不要⽤⿏标滚轮,会输出乱码的!
#可以使⽤“/”搜索,输⼊“/type”找到⽬标,如果已经为NodePort,忽略此步骤

......省略部分内容......
 selector:
   k8s-app: kubernetes-dashboard
 sessionAffinity: None
 type: NodePort

图示:

(4)查看访问端⼝号

# 获取kubernetes-dashboard状态信息,包含端⼝,服务IP等

[root@master dashboard]# kubectl get svc kubernetes-dashboard -n kubernetes-dashboard 

找到端⼝号后,通过 master 的 IP+端⼝即可访问 dashboard(端⼝ 为终端查询到的端⼝,要⽤ https 协议访问)

(5)创建登录 token

[root@master dashboard]# kubectl create token admin-user -n kube-system

在“输⼊ token *”内输⼊终端⽣成的 token

三、部署Kube-proxy

(1)改为 ipvs模式

[root@master ~]# kubectl edit cm kube-proxy -n kube-system

# 使⽤“/”找到“mode”,按照如下修改
 mode: ipvs

(2)更新 Kube-Proxy 的 Pod

[root@master ~]# kubectl patch daemonset kubeproxy -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}" -n kube-system

daemonset.apps/kube-proxy patched

[root@master ~]# curl 127.0.0.1:10249/proxyMode

ipvs

四、集群可⽤性验证

1. 验证节点

# 全部为Ready,是正常
[root@master ~]# kubectl get node

NAME         STATUS   ROLES           AGE   
VERSION
k8s-node01   Ready   <none>         156m   v1.28.2
k8s-node02   Ready   <none>         155m   v1.28.2
master       Ready   control-plane   157m   v1.28.2

2. 验证 Pod

# 全部为running,表示正常

[root@master ~]# kubectl get po -A 
NAMESPACE          NAME                                    READY   STATUS   RESTARTS   AGE
kube-system        calico-kube-controllers6d48795585-wj8g5 1/1     Running   0        156m
kube-system        calico-node-bk4p5                       1/1     Running   0        156m
kube-system        calico-node-kmsh7                       1/1     Running   0        156m
kube-system        calico-node-qthgh                       1/1     Running   0        156m
kube-system        coredns-6554b8b87f-jdc2b                1/1     Running   0        159m
kube-system        coredns-6554b8b87f-thftb                1/1     Running   0        159m
kube-system        etcd-master                             1/1     Running   0        159m
kube-system        kube-apiserver-master                   1/1     Running   0        159m
............................

3. 验证集群⽹段是否冲突

# 查看服务的⽹段

[root@master ~]# kubectl get svc 
NAME         TYPE       CLUSTER-IP   EXTERNAL-IP PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1   <none>        443/TCP   160m

# 查看所有命名空间下的所有⽹段,再与服务的⽹段进⾏⽐较

[root@master ~]# kubectl get po -A -owide 

4. 验证是否可正常创建参数

# 已创建,表示正常

[root@master ~]# kubectl create deploy clustertest-- 
 image=registry.cnbeijing.aliyuncs.com/dotbalo/debug-tools
 -- sleep 3600 deployment.apps/cluster-test created
[root@master ~]# kubectl get po
NAME                           READY   STATUS   RESTARTS   AGE
cluster-test-66bb44bd88-sq8fx   1/1     Running   0         41s

[root@master ~]# kubectl get po -owide
NAME   READY   STATUS   RESTARTS   AGE   IP     NODE    NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-sq8fx 1/1 Running  0  48s  172.16.58.196  k8s-node02 <none> <none>

5. Pod 必须能够解析 Service

同 namespace 和跨 namespace

(1)nslookup kubernetes

# 进⼊pod下的某个容器
[root@master ~]# kubectl exec -it cluster-test66bb44bd88-sq8fx -- bash 
(06:36 cluster-test-66bb44bd88-sq8fx:/) nslookup kubernetes
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1
# 可以解析到server的IP地址说明同namespace可以解析

(2)nslookup kube-dns.kube-system

(06:36 cluster-test-66bb44bd88-sq8fx:/) nslookup kube-dns.kube-system
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: kube-dns.kube-system.svc.cluster.local
Address: 10.96.0.10

# 可以解析到server的第⼗个ip,说明可以解析到kube-dns,说明跨namespace也可解析

6. 确认是否可访问 Kubernetes 的 443 和 kube-dns 的 53

每个节点都必须能访问 Kubernetes 的 kubernetes svc 443 和 kube-dns 的 service 53

[root@master ~]# curl https://10.96.0.1:443
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: 
https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
[root@master ~]# curl 10.96.0.10:53
curl: (52) Empty reply from server

7. 确认各 Pod 之间是否可正常通信

同 namespace 和跨 namespace

[root@master ~]# kubectl get po -nkube-system -owide

[root@master ~]# kubectl get po -owide

[root@master ~]# kubectl exec -it cluster-test66bb44bd88-sq8fx -- bash

同机器和跨机器

[root@master ~]# kubectl get po -owide

[root@master ~]# ping 172.16.58.196 -c 3

五、注意事项

注意:kubeadm 安装的集群,证书有效期默认是⼀年。master 节点 的 kube-apiserver、kube-scheduler、kube-controller-manager、 etcd 都是以容器运⾏的。

可以通过 kubectl get po -n kube-system 查看。

启动和⼆进制不同的是,kubelet 的配置⽂件在 /etc/sysconfig/kubelet 和/var/lib/kubelet/config.yaml

修改后需要重启 kubelet 进程。

其他组件的配置⽂件在 /etc/kubernetes/manifests ⽬录下,⽐如 kube-apiserver.yaml,该 yaml ⽂件更改后,kubelet 会⾃动刷新配 置,也就是会重启 pod。不能再次创建该⽂件

kube-proxy 的配置在 kube-system 命名空间下的 configmap 中, 可以通过:

kubectl edit cm kube-proxy -n kube-system

进⾏更改,更改完成后,可以通过 patch 重启 kube-proxy:

kubectl patch daemonset kube-proxy -p "{\"spec\": {\"template\":{\"metadata\":{\"annotations\": {\"date\":\"`date +'%s'`\"}}}}}" -n kube-system

Kubeadm 安装后,master 节点默认不允许部署 Pod,可以通过以 下⽅式删除 Taint,即可部署 Pod:

kubectl taint node -l noderole.kubernetes.io/control-plane noderole.kubernetes.io/control-plane:NoSchedule-

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

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

相关文章

Linux进阶命令-top

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 经过上一章Linux日志的讲解&#xff0c;我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令&am…

【计算机网络】初识网络

初识网络 初识网络网络的发展局域网广域网 网络基础IP地址端口号协议五元组协议分层OSI 七层模型TCP/IP五层模型封装和分用"客户段-服务器"结构 初识网络 网络的发展 在过去网络还没有出现的时候, 我们的计算机大部分都是独自运行的, 比如以前那些老游戏, 都是只能…

Chainlit集成Langchain并使用通义千问实现文生图网页应用

前言 本文教程如何使用通义千问的大模型服务平台的接口&#xff0c;实现图片生成的网页应用&#xff0c;主要用到的技术服务有&#xff0c;chainlit 、 langchain、 flux。合利用了大模型的工具选择调用能力。实现聊天对话生成图片的网页应用。 阿里云 大模型服务平台百炼 API…

1.SpringCloud与SpringCloud Alibaba

SpringCloud与SpringCloud Alibaba主要讲解的内容&#xff1a; 备注&#xff1a;黑色部分是springcloud社区原版&#xff0c;红色的是SpringCloud Alibaba 服务注册与发现 Consul Alibaba Nacos 服务调用和负载均衡 LoadBalancer OpenFeign 分布式事务 Alibaba Seata 服务熔…

批量插入insert到SQLServer数据库,BigDecimal精度丢失解决办法,不动代码,从驱动层面解决

概述 相信很多人都遇到过&#xff0c;使用sql server数据库&#xff0c;批量插入数据时&#xff0c;BigDecimal类型出现丢失精度的问题&#xff0c;网上也有很多人给出过解决方案&#xff0c;但一般都要修改应用代码&#xff0c;不推荐。 丢失精度的本质是官方的驱动有BUG造成…

机器学习特征-学习篇

一、特征概念 1. 什么是特征 特征是事物可供识别的特殊的征象或标志 在机器学习中&#xff0c;特征是用来描述样本的属性或观测值的变量。它们可以是任何类型的数据&#xff0c;包括数字、文本、图像、音频等。 作用&#xff1a; 特征是训练和评估机器学习模型的基础。好的特…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 09 集成 Ant Design Vue

我们要将 Ant Design Vue 集成到项目中 1.首先进入到我们的项目 2.然后使用下面的命令 npm i --save ant-design-vue解释一下这个命令&#xff1a; npm&#xff1a;npm 命令 i&#xff1a;install 的简写 –save&#xff1a;将其保存到 pagckage.json ant-design-vue&am…

PHP随时随地预订民宿酒店预订系统小程序源码

随时随地预订&#xff0c;民宿酒店预订系统让旅行更自由&#xff01; &#x1f30d; 说走就走的旅行&#xff0c;从预订开始 旅行&#xff0c;总是让人心生向往&#xff0c;但繁琐的预订流程却常常让人望而却步。不过&#xff0c;现在有了“随时随地预订民宿酒店预订系统”&am…

centos7安装MySQL5.7.44

下载压缩文件 命令&#xff1a; #放到在/usr/local目录下 cd /usr/local #上传命令选择安装包 rz #解压缩包 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #给包重命名为mysql mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql #查看mysql目录下有什么东西 [rootlocal…

【Python 数据分析学习】Pandas基础与应用(1)

题目 1 Pandas 简介1.1 主要特征1.2 Pandas 安装 2 Pandas中的数据结构2.1 Series 数据结构和操作2.1.1 Series的数据结构2.1.2 Seres的操作 2.2 DataFrame 数据结构和操作2.2.1 DataFrame 数据结构2.2.2 Dataframe 操作2.2.3 DateFrame 的特殊操作 2.3 Series 和 DataFrame 的…

JMeter 入门之远程启动,服务模式,多机联测,负载均衡测试

本文主要介绍 JMeter 远程启动及使用多节点完成大并发测试&#xff08;负载均衡测试&#xff09;&#xff0c;主打一个压力山大&#xff0c;借用 黑神话&#xff1a;悟空 的技能来描述就是远程开大&#xff0c;释放猴子猴孙技能。 搜了一些 jmeter 的案例或教程&#xff0c;讲的…

Windows10 如何设置电脑ip

1、首先打开控制面板 或者使用WinR 输入control 找到网络和Internet 点击网络和共享中心 点击更改适配器设置 找到你要需要设置的网络&#xff0c;右键 如果你的网口特别多&#xff0c;不确定是哪一个&#xff0c;拔插一下看看哪个以太网的标志是断开状态就可以了 点击属性…

★ C++基础篇 ★ string类的实现

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C基础篇第五章下篇----string类的模拟实现 ~ 上篇&#xff1a;★ C基础篇 ★ string类-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSDN博客 目录 一 基础结构 二 迭代器 …

即插即用篇 | YOLOv8 引入组装式Transformer模块AssembleFormer | arXiv 2024

本改进已同步到YOLO-Magic框架! 摘要—早期检测和准确诊断可以预测恶性疾病转化的风险,从而增加有效治疗的可能性。轻微的症状和小范围的感染区域是一种不祥的警告,是疾病早期诊断的重中之重。深度学习算法,如卷积神经网络(CNNs),已被用于分割自然或医学对象,显示出有希…

JVM源码解析

一、java虚拟机概述 1. java程序的跨平台性 之前的话&#xff0c;通过Linux或者Windows开发&#xff0c;当需要跨平台时&#xff0c;程序不能运行。java出现后&#xff0c;产生了jvm&#xff0c;针对不同的操作系统&#xff0c;产生了不同的java虚拟机。 在Java虚拟机中执行…

3D云渲染农场为何怎么贵?主要消耗成本介绍

随着对高质量3D动画的需求持续增长&#xff0c;云渲染农场对于旨在以高效速度生产高质量视觉效果的工作室来说变得至关重要。然而&#xff0c;用户经常想知道为什么渲染农场的价格如此之高&#xff0c;理解背后的原因可以帮助艺术家做出更好的选择。 什么是云渲染农场&#xff…

【Hot100】LeetCode—72. 编辑距离

目录 1- 思路题目识别动规五部曲 2- 实现⭐72. 编辑距离——题解思路 3- ACM 实现 原题链接&#xff1a;72. 编辑距离 1- 思路 题目识别 识别1 &#xff1a;两个字符串之间相互转换&#xff0c;增、删、替换 最少的操作次数 动规五部曲 1- 定义 dp 数组 dp[i][j] 代表&…

市面上有哪些高效财税自动化软件

随着科技的不断发展&#xff0c;财税自动化软件已成为许多企业和个人不可或缺的工具。这些软件可以大大提高财税处理的效率&#xff0c;减少人工错误&#xff0c;并确保合规性。目前市场上有许多高效财税自动化软件可供选择&#xff0c;本文金智维将介绍一些市场上比较受欢迎的…

可信的人类与人工智能协作:基于人类反馈和物理知识的安全自主驾驶强化学习

可信的人类与人工智能协作&#xff1a;基于人类反馈和物理知识的安全自主驾驶强化学习 Abstract 在自动驾驶领域&#xff0c;开发安全且可信赖的自动驾驶策略仍然是一项重大挑战。近年来&#xff0c;结合人类反馈的强化学习&#xff08;RLHF&#xff09;因其提升训练安全性和…

【EI会议征稿通知】第五届机械、电子电气与自动化控制国际学术会议(METMS 2025)

第五届机械、电子电气与自动化控制国际学术会议&#xff08;METMS 2025&#xff09; 2025 5th International Conference on Mechanical, Electronics and Electrical and Automation Control 随着全球技术进步与工业需求的不断升级&#xff0c;机械、电子电气和自动化控制技…