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 的基本使用方法,希望能够对读者有所帮助。

相关推荐
€☞扫地僧☜€1 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
全能全知者2 小时前
docker快速安装与配置mongoDB
mongodb·docker·容器
为什么这亚子4 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
ZHOU西口5 小时前
微服务实战系列之玩转Docker(十八)
分布式·docker·云原生·架构·数据安全·etcd·rbac
牛角上的男孩6 小时前
Istio Gateway发布服务
云原生·gateway·istio
JuiceFS7 小时前
好未来:多云环境下基于 JuiceFS 建设低运维模型仓库
运维·云原生
景天科技苑8 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge9 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇9 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
川石课堂软件测试11 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana