kubeasz在线安装K8S集群单master

1.基础系统配置

确保在干净的系统上开始安装,不能使用曾经装过kubeadm或其他k8s发行版的环境

系统是Ubuntu 或者CentOS 7

2.下载文件

2.1 下载工具脚本ezdown,举例使用kubeasz版本3.5.0

bash 复制代码
#此版本默认安装的是 K8S v1.26.0
export release=3.5.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
#用工具脚本下载(更多关于ezdown的参数,运行./ezdown 查看)

2.2 下载kubeasz代码、二进制、默认容器镜像

bash 复制代码
# 国内环境
./ezdown -D
# 海外环境
#./ezdown -D -m standard

./ezdown -X   #【可选】下载额外容器镜像(cilium,flannel,prometheus等)

./ezdown -P  #【可选】下载离线系统包 (适用于无法使用yum/apt仓库情形)

上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

2.3.安装集群

bash 复制代码
./ezdown -S  #容器化运行 kubeasz
bash 复制代码
#使用默认配置安装 aio 集群
docker exec -it kubeasz ezctl start-aio
# 如果安装失败,查看日志排除后,使用如下命令重新安装aio集群
# docker exec -it kubeasz ezctl setup default all

2.4.验证安装

bash 复制代码
source ~/.bashrc
kubectl version         # 验证集群版本     
kubectl get node        # 验证节点就绪 (Ready) 状态
kubectl get pod -A      # 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等
kubectl get svc -A      # 验证集群服务状态
bash 复制代码
[root@localhost ~]# kubectl get nodes
NAME              STATUS   ROLES    AGE     VERSION
192.168.186.132   Ready    master   6m28s   v1.26.0
[root@localhost ~]# kubectl get pods,svc -A
NAMESPACE     NAME                                             READY   STATUS    RESTARTS   AGE
kube-system   pod/calico-kube-controllers-89b744d6c-txqhc      1/1     Running   0          6m19s
kube-system   pod/calico-node-bn28l                            1/1     Running   0          6m19s
kube-system   pod/coredns-6665999d97-lx6mm                     1/1     Running   0          5m7s
kube-system   pod/dashboard-metrics-scraper-57566685b4-wll4c   1/1     Running   0          4m48s
kube-system   pod/kubernetes-dashboard-57db9bfd5b-vx5nx        1/1     Running   0          4m48s
kube-system   pod/metrics-server-6bd9f986fc-d4w4p              1/1     Running   0          5m2s
kube-system   pod/node-local-dns-c5nqc                         1/1     Running   0          5m5s

NAMESPACE     NAME                                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
default       service/kubernetes                  ClusterIP   10.68.0.1      <none>        443/TCP                  7m7s
kube-system   service/dashboard-metrics-scraper   ClusterIP   10.68.16.214   <none>        8000/TCP                 4m48s
kube-system   service/kube-dns                    ClusterIP   10.68.0.2      <none>        53/UDP,53/TCP,9153/TCP   5m7s
kube-system   service/kube-dns-upstream           ClusterIP   10.68.96.14    <none>        53/UDP,53/TCP            5m5s
kube-system   service/kubernetes-dashboard        NodePort    10.68.197.57   <none>        443:31512/TCP            4m48s
kube-system   service/metrics-server              ClusterIP   10.68.34.18    <none>        443/TCP                  5m2s
kube-system   service/node-local-dns              ClusterIP   None           <none>        9253/TCP                 5m5s
[root@localhost ~]# 

3. 部署nginx服务器测试环境

bash 复制代码
cat > nginx.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
EOF

kubectl apply -f nginx.yaml 
 
bash 复制代码
[root@localhost ~]# kubectl get pods,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-57cc89bc77-t7gsr   1/1     Running   0          2m56s

NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.68.0.1      <none>        443/TCP        19m
service/nginx        NodePort    10.68.211.64   <none>        80:31982/TCP   2m56s
[root@localhost ~]# 

4.Dashboard登录

bash 复制代码
[root@localhost ~]# kubectl get svc -n kube-system |grep dashboard #查看Dashboard暴露端口
dashboard-metrics-scraper   ClusterIP   10.68.16.214   <none>        8000/TCP                 12m
kubernetes-dashboard        NodePort    10.68.197.57   <none>        443:31512/TCP            12m
[root@localhost ~]# kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}') #获取用户Token

https://ip:端口/

5.清理

bash 复制代码
#清理集群 不想用了用此命令直接可以清除
docker exec -it kubeasz ezctl destroy default

重启节点,以确保清理残留的虚拟网卡、路由等信息

6.官网参考地址

https://github.com/easzlab/kubeasz/blob/3.6.0/docs/guide/dashboard.md

总结

Kubeasz 是一个非常方便、快速、易用的 Kubernetes 部署和管理工具。使用 Kubeasz 可以大大简化 Kubernetes 的部署和管理过程,提高系统的可靠性和弹性。通过本文的介绍,相信读者已经掌握了 Kubeasz 的基本使用方法,希望能够对读者有所帮助。

相关推荐
阿里云云原生3 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀3 天前
Docker部署Nacos
docker·容器
缓解AI焦虑3 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
阿里云云原生3 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生4 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生4 天前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生4 天前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
1candobetter4 天前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka
~莫子4 天前
Haproxy七层负载详解+实验详细代码
云原生