SealOS 一键安装 K8S

news/2024/5/22 16:19:58

环境

# 查看系统发行版
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

# 查看本机 IP(192.168.213.37)
$ ip addr
...
enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:12:05:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.213.37/24 brd 192.168.213.255 scope global noprefixroute dynamic enp0s8
       valid_lft 534sec preferred_lft 534sec
    inet6 fe80::95b2:c44f:3065:e6e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
...

添加源

# 添加源
$ cat > /etc/yum.repos.d/labring.repo << EOF
[fury]
name=labring Yum Repo
baseurl=https://yum.fury.io/labring/
enabled=1
gpgcheck=0
EOF

# 清理缓存
$ yum clean all

安装 SealOS

# 安装 SealOS
$ yum install sealos
# 查看版本
$ sealos version
CriVersionInfo:
  RuntimeApiVersion: v1
  RuntimeName: containerd
  RuntimeVersion: v1.6.17
  Version: 0.1.0
KubernetesVersionInfo:
  clientVersion:
    buildDate: "2022-08-23T17:44:59Z"
    compiler: gc
    gitCommit: a866cbe2e5bbaa01cfd5e969aa3e033f3282a8a2
    gitTreeState: clean
    gitVersion: v1.25.0
    goVersion: go1.19
    major: "1"
    minor: "25"
    platform: linux/amd64
  kustomizeVersion: v4.5.7
  serverVersion:
    buildDate: "2022-08-23T17:38:15Z"
    compiler: gc
    gitCommit: a866cbe2e5bbaa01cfd5e969aa3e033f3282a8a2
    gitTreeState: clean
    gitVersion: v1.25.0
    goVersion: go1.19
    major: "1"
    minor: "25"
    platform: linux/amd64
SealosVersion:
  buildDate: "2023-02-20T02:50:39Z"
  compiler: gc
  gitCommit: 1d7649e4
  gitVersion: 4.1.5-rc2
  goVersion: go1.20.1
  platform: linux/amd64

安装 K8S

# 单机部署
sealos run labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 --single
# 设置 master 节点可以部署 pod
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl taint nodes --all node-role.kubernetes.io/control-plane-

安装 K8S Dashboard

Dashboard 版本需要与 K8S 版本相匹配,参考:https://github.com/kubernetes/dashboard/releases

# 下载镜像
$ sealos pull kubernetesui/dashboard:v2.7.0
$ sealos images
REPOSITORY                         TAG       IMAGE ID       CREATED        SIZE
docker.io/labring/kubernetes       v1.25.0   06f5d19b019c   8 days ago     528 MB
docker.io/library/nginx            latest    3f8a00f137a0   13 days ago    146 MB
docker.io/kubernetesui/dashboard   v2.7.0    07655ddf2eeb   5 months ago   249 MB
docker.io/labring/calico           v3.24.1   e2122fc58fd3   5 months ago   354 MB
docker.io/labring/helm             v3.8.2    1123e8b4b455   6 months ago   45.1 MB

# 下载 deployment yaml 
>$ wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
# 更改为 NodePort 访问
$ vim recommended.yaml

dashboard-nodeport

# 部署 dashboard
$ kubectl apply -f recommended.yaml

# 查看 dashboard NodePort 端口(32688)
$ kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.96.3.61   <none>        8000/TCP        11m
kubernetes-dashboard        NodePort    10.96.1.40   <none>        443:32688/TCP   11m

# 创建访问账号
$ cat > admin-user.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: xchenhao-admin
  namespace: xchenhao
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: xchenhao-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: xchenhao-admin
  namespace: xchenhao
EOF

$ kubectl apply -f admin-user.yaml

# 生成 Token
$ kubectl create token xchenhao-admin --duration 24h -n xchenhao
eyJhbGciOiJSUzI1NiIsImtpZCI6InlGdU5hN3hpcU9jcWM4Zm1T.....aSWNyVrBnRxjHA

浏览器访问 Dashboard

访问 机器 IP:NodePort 端口

kubernetes-dashboard

部署一个服务(Nginx)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      name: test-nginx
  template:
    metadata:
      labels:
        name: test-nginx
    spec:
      containers:
        - name: test-nginx
          image: hub.c.163.com/library/nginx
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: test-nginx-service-nodeport
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  type: NodePort
  selector:
    name: test-nginx

Deployment
Nginx NodePort 为 32272
Nginx NodePort
浏览器访问 192.168.213.37:32272
在这里插入图片描述

参考

  • https://github.com/labring/sealos
  • https://www.qycn.com/xzx/article/14034.html 如何查看 linux 发行版本系统,有哪些方法
  • https://blog.csdn.net/xmcy001122/article/details/127223735 k8s dashboard 安装
  • https://www.cnblogs.com/zhanchenjin/archive/2022/07/15/16481954.html kubernetes1.24+containerd 搭建
  • https://itnext.io/big-change-in-k8s-1-24-about-serviceaccounts-and-their-secrets-4b909a4af4e0 BIG change in K8s 1.24 about ServiceAccounts and their Secrets
  • https://blog.csdn.net/xchenhao/article/details/103183823 CentOS7 部署 Kubernetes 流程

http://lihuaxi.xjx100.cn/news/912927.html

相关文章

信息安全圈都在谈论CISP,CISSP,这两者有什么区别呢?

CISP 和 CISSP 都是信息安全认证资格考试&#xff0c;但是它们之间有一些区别。 CISP&#xff08;Certified Information Security Professional&#xff09;认证考试是由国际信息系统安全认证联盟&#xff08;ISC)所开发和管理的&#xff0c;主要考核信息安全专业人员在保障企…

0301微分中值定理-微分中值定理与导数的应用

文章目录1 罗尔定理2 拉格朗日定理3 柯西中值定理5后记1 罗尔定理 费马引理 设函数f(x)在点x0f(x)在点x_0f(x)在点x0​的某邻域U(x0)U(x_0)U(x0​)内有定义&#xff0c;并且在点x0x_0x0​处可导&#xff0c;如果对任意的x∈U(x0),x\in U(x_0),x∈U(x0​),有 f(x)≤f(x0)(或f(x)…

SpringBoot使用validator进行参数校验

Validated、Valid和BindingResultBean Validation是Java定义的一套基于注解的数据校验规范&#xff0c;比如Null、NotNull、Pattern等&#xff0c;它们位于 javax.validation.constraints这个包下。hibernate validator是对这个规范的实现&#xff0c;并增加了一些其他校验注解…

文案女王彭芳如何转变为“百万发售系统”创始人?我们来探个究竟!

智多星老师 她的输出跟智多星老师几乎毫无二致&#xff0c;是抄袭还是纯属巧合呢&#xff1f; 你们问的这个问题我也想知道&#xff0c;为了了解真相&#xff0c;我让我的一个学生把那个叫“彭芳老师”的视频给我看&#xff0c;当看到她的简介时&#xff0c;我非常震惊&#…

【Spark分布式内存计算框架——离线综合实战】2. 业务需求

1.3 业务需求 对广告数据进行初步ETL处理和业务报表统计分析&#xff0c;整体业务需求如下图所示&#xff1a; 两个主要方面的业务&#xff1a; 第一个、数据【ETL 处理】 依据IP地址&#xff0c;调用第三方库解析为省份province和城市city&#xff1b;将ETL后数据保存至PAR…

【2023最火教程】Python性能测试框架Locust实战教程(建议收藏)

01、认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站&#xff08;或其他系统&#xff09;进行负载测试&#xff0c;并确定系统可以处理多少个并发用户&#xff0c;Locust 在英文中是 蝗虫 的意思&#xff1a;作者的想法是在测试期间&#xff0c;放…

(二十二)、实现评论功能(2)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1&#xff0c;渲染评论列表 1.1&#xff0c;在detail页面中定义评论列表数组和getcomment方法&#xff1a; commentList: [],getcomment方法&#xff1a; //获取评论列表async getComment() {let commentTemp db.collection("quanzi_comment").where(article_id …

SSM SpringBoot vue 健康医疗预约系统

SSM SpringBoot vue 健康医疗预约系统 SSM 健康医疗预约系统 功能介绍 首页 图片轮播展示 出诊信息推荐 医院公告 科室信息 科室详情 出诊信息 医生详情 挂号预约 登录注册 留言反馈 个人中心 我的收藏 后台管理 登录 注册医生 个人中心 用户管理 科室信息管理 医生管理 出诊…