当前位置: 首页 > news >正文

Hyper-V + Centos stream 9 搭建K8s集群(二)

一、安装自动补全

        主节点安装就可以

yum install -y bash-completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash >/etc/bash_completion.d/kubectl

二、安装Calico网络插件(主节点)

        下载文件

wget https://calico-v3-25.netlify.app/archive/v3.25/manifests/calico.yaml

        修改配置文件

sed -i 's#docker.io#m.daocloud.io/docker.io#g' calico.yaml

        如果你没有进行某些自定义安装,可以直接应用

kubectl apply -f calico.yaml

        然后耐心等待(有可能因为网络问题拉镜像失败),可以不断查看空间kube-system下的所有Pod(最终正常应该都是running)

kubectl get pods -n kube-system

        查看Calico插件在各节点的部署情况(正常应该都是running)

kubectl get po -A -o wide | grep calic

        查看集群状态

kubectl get nodes -A

        正常应该都是Ready的状态了。 

三、安装Kubernetes Dashboard

1、创建访问账号

        编辑文件添加内容

vim /etc/kubernetes/dashadm.yaml

        添加下面的内容

#创建服务帐户
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
#创建群集角色绑定
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard

        使其生效

kubectl apply -f /etc/kubernetes/dashadm.yaml

        获取访问令牌的token的命令

kubectl -n kubernetes-dashboard create token admin-user

2、安装

        Helm 更适合生产环境,kubectl apply 更适合学习和简单部署。

1、方式1-基于helm安装

# 下载helm
wget https://get.helm.sh/helm-v3.16.1-linux-amd64.tar.gz# 解压
tar zxf helm-v3.16.1-linux-amd64.tar.gz# 移动到/usr/local
mv linux-amd64/helm /usr/local/bin/helm && rm -rf linux-amd64# 加一个chart 仓库,这里用的阿里云
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts# 查看列表
helm search repo aliyun 

        Helm 仓库的核心作用​是​集中化管理 Charts,存储预定义的 Kubernetes 应用模板(如 MySQL、Nginx、Redis 的部署配置)。类似 apt/yum 的软件源,但针对的是 Kubernetes 应用。

        通过 helm install 快速部署应用,无需手动编写复杂的 YAML 文件。

        比如

helm install my-mysql aliyun/mysql

        添加仓库

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/

        使用kubernetes仪表板图表部署名为“kubernetes仪表板”的Helm Release

helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

     设置访问端口

kubectl edit svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard

        修改service的type类型为NodePort,使其可以外部访问,修改之后查看结果

kubectl -n kubernetes-dashboard get svc

2、方式2-直接使用 kubectl安装

        下载配置文件

https://github.com/kubernetes/dashboard/blob/v2.0.0-beta4/aio/deploy/recommended.yaml

       下载完修改这个文件,找到镜像文件修改为国内的源

image: registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0
image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8

        然后进行应用

kubectl apply -f recommended.yaml

        有几种方式可以访问,这里选择NodePort

kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}'

        查看服务状态

kubectl -n kubernetes-dashboard get svc kubernetes-dashboard
kubectl get svc -n kubernetes-dashboard

         生成token

kubectl -n kubernetes-dashboard create token admin-user

         进行登录

https://172.25.116.101:31874/

        使用token登录

3、遇到问题可以重新部署

        如果是镜像拉取的问题,可以使用这个命令查看

kubectl describe pod -n kubernetes-dashboard

        首先清理现有的错误 Pod

kubectl delete deployment --all -n kubernetes-dashboard

         然后删除

kubectl delete namespace kubernetes-dashboard

        然后重新部署

kubectl create namespace kubernetes-dashboardkubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

四、部署测试

        我们创建一个nginx.yaml,随便放在哪里。

        添加如下内容

apiVersion: v1
kind: Pod
metadata:name: nginxlabels:app.kubernetes.io/name: MyApp
spec:containers:- name: nginximage: ccr.ccs.tencentyun.com/library/nginx:latestports:- containerPort: 80name: http-web-svc
---
apiVersion: v1
kind: Service
metadata:name: my-service
spec:type: NodePortselector:app.kubernetes.io/name: MyAppports:# 默认情况下,为了方便起见,`targetPort` 被设置为与 `port` 字段相同的值。- port: 80targetPort: 80# 可选字段# 默认情况下,为了方便起见,Kubernetes 控制平面会从某个范围内分配一个端口号#(默认:30000-32767)nodePort: 30007

        然后应用

kubectl apply -f nginx.yaml

        查看状态

kubectl get pod,svc

        访问这个地址

http://172.25.116.101:30007/

http://www.lryc.cn/news/608947.html

相关文章:

  • k8s+isulad 国产化技术栈云原生技术栈搭建3-master节点安装
  • [硬件电路-148]:数字电路 - 什么是CMOS电平、TTL电平?还有哪些其他电平标准?发展历史?
  • Go语言实战案例:TCP服务器与客户端通信
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介
  • Kafka——怎么重设消费者组位移?
  • 构建企业级Web应用:AWS全栈架构深度解析
  • AtCoder Beginner Contest 417
  • [硬件电路-147]:模拟电路 - DC/DC电压的三种架构:升压(Boost)、降压(Buck)或升降压(Buck-Boost)
  • 跨语言模型中的翻译任务:XLM-RoBERTa在翻译任务中的应用
  • 界面规范4-按钮
  • IntelliJ IDEA开发编辑器摸鱼看股票数据
  • Parcel 使用详解:零配置的前端打包工具
  • 关于车位引导及汽车乘梯解决方案的专业性、系统性、可落地性强的综合设计方案与技术实现说明,旨在为现代智慧停车楼提供高效、安全、智能的停车体验。
  • electron-多线程
  • 嵌入式——数据结构:单向链表的函数创建
  • 常见的深度学习模块/操作中的维度约定(系统性总结)
  • Docker-03.快速入门-部署MySQL
  • 介绍JAVA语言、介绍greenfoot 工具
  • 北邮:LLM强化学习架构Graph-R1
  • 【机器学习】线性回归算法详解:线性回归、岭回归、Lasso回归与Elastic Net
  • 02.Redis 安装
  • 13.Redis 的级联复制
  • kafka与其他消息队列(如 RabbitMQ, ActiveMQ)相比,有什么优缺点?
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • RabbitMQ面试精讲 Day 10:消息追踪与幂等性保证
  • 《软件测试与质量控制》实验报告三 系统功能测试
  • Flutter开发 dart异步
  • Spring lookup-method实现原理深度解析
  • [spring-cloud: 服务注册]-源码解析
  • 【Linux】linux基础开发工具(三) 版本控制器Git、调试器 - gdb/cgdb使用、一些实用的调试技巧