ubuntu22.04使用kk安装kubernates1.20.4和kubesphere3.1.1

news2024/12/24 1:01:12

注意

  • 存储空间不够可能安装失败

环境

  • master 192.168.1.108
  • node1 192.168.1.106
  • node2 192.168.1.102

root ssh登录

sudo passwd root
sudo apt install openssh-server
# 定位 /PermitRootLogin 添加 PermitRootLogin yes
# 注释掉#PermitRootLogin prohibit-password #StrictModes yes
sudo vim /etc/ssh/sshd_config
sudo service ssh restart

主机名

master

hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

node1

hostnamectl set-hostname node1

node2

hostnamectl set-hostname node2

kk

master

export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -
chmod +x kk

# 运行成功 当前文件下有config-sample.yaml
./kk create config --with-kubernetes v1.20.4 --with-kubesphere v3.1.1
# 需要修改的地方见下
vim config-sample.yaml
# 开始安装
./kk create cluster -f config-sample.yaml
# 查看安装进度
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

config-sample.yaml需要修改的地方

spec:
  hosts:#name是hostname,address和internalAddress换成内网地址,user主机用户名,password主机登录密码
  - {name: master, address: 10.140.126.6, internalAddress: 10.140.126.6, user: root, password: 12345678}
  - {name: node1, address: 10.140.122.56, internalAddress: 10.140.122.56, user: root, password: 12345678}
  - {name: node2, address: 10.140.122.39, internalAddress: 10.140.122.39, user: root, password: 12345678}
  roleGroups:
    etcd: #etcd在master中
    - master
    master: #master名称 设置为hostname
    - master
    worker: #worker名称 设置为hostname
    - node1
    - node2

安装完成产生输出
Console: http://192.168.1.108:30880
Account: admin
Password: P@88w0rd

# 等待所有pod状态位running
kubectl get pod -A

访问 http://192.168.1.108:30880
在这里插入图片描述

若需要nfs存储服务则继续下面操作

nfs

master

sudo apt install nfs-kernel-server
# 补充,卸载 remove apt remove nfs-kernel-server
# 补充,node卸载 umount -f -l /nfs/data

node1

showmount -e 192.168.1.108
mkdir -p /nfs/data
mount -t nfs 192.168.1.108:/nfs/data /nfs/data

node2

showmount -e 192.168.1.108
mkdir -p /nfs/data
mount -t nfs 192.168.1.108:/nfs/data /nfs/data

默认storage

master

vim nfs-storage.yaml
kubectl apply -f nfs-storage.yaml

nfs-storage.yaml

  • 注意修改 下面的两处IP
## 创建了一个存储类
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: nfs-storage
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
parameters:
  archiveOnDelete: "true"  ## 删除pv的时候,pv的内容是否要备份

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/nfs-subdir-external-provisioner:v4.0.2
          # resources:
          #    limits:
          #      cpu: 10m
          #    requests:
          #      cpu: 10m
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: k8s-sigs.io/nfs-subdir-external-provisioner
            - name: NFS_SERVER
              value: 192.168.1.108 ## 指定自己nfs服务器地址
            - name: NFS_PATH  
              value: /nfs/data  ## nfs服务器共享的目录
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.1.108
            path: /nfs/data
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: default
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    # replace with namespace where provisioner is deployed
    namespace: default
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io

参考

参考

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

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

相关文章

【Jenkins+Ant+Jmeter】持续集成接口测试平台搭建

一、环境准备: 1、JDK:Java Downloads | Oracle 2、Jmeter:Apache JMeter - Download Apache JMeter 3、Ant:Apache Ant - Binary Distributions 4、Jenkins:Jenkins 二、Jemter脚本准备: 1、脚本目录&a…

PyTorch实验—回归任务

PyTorch回归任务 回归任务概述:通过pytorch搭建神经网络,进行气温的预测 回归任务可以看作 y kx b y为需要进行回归预测的值 下面对实验步骤进行整理 导入相关的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import…

张小飞的Java之路——第四十四章——其他流对象

写在前面: 视频是什么东西,有看文档精彩吗? 视频是什么东西,有看文档速度快吗? 视频是什么东西,有看文档效率高吗? 诸小亮:这一节,我们介绍一下其他不常用的流对象 …

SAP-MM-分割评估-评估类型-评估类别

同一物料的使用,既有“自制品”,又有“外购品”,并且其来源不同,如同一外购品由不同的供应商提供,价格也不相同。也就是说:同一物料有不同的价值指派,即在不同的条件下,同一物料可能有不同的价值…

智能型数字档案馆构建设想

档案作为企业正式权威的数据资源,具有其历史传承和凭证唯一性等特点,随着企业的数字化转型,档案工作更需要数字化转型,档案管理与利用急需借助信息技术手段来管理好和记录好,急需挖掘档案资源,发挥其价值&a…

01.硬盘启动盘,加载操作系统

硬盘启动盘,加载操作系统 模拟硬盘加载操作系统 环境: VMware16 Ubuntu16.04 qemu bochs 2.7 参考: 启动,BIOS,MBR 硬盘控制器主要端口寄存器 《操作系统真相还原》 1.系统开机流程 暂不构建中断向量表,直接加载MBR …

Knowledge Distillation: A Survey

本文是蒸馏学习综述系列的第一篇文章,主要是针对2021年 IJCV Knowledge Distillation: A Survey的一个翻译。 知识蒸馏:综述 摘要1 引言2 知识2.1 基于响应的知识2.2 基于特征的知识2.3 基于关系的知识 3 蒸馏方案3.1 离线蒸馏3.2 在线蒸馏3.3 自蒸馏 4…

你真的了解epoll吗?深入epoll的五个问题

由于epoll用的比较多,最近看到一些网友关于epoll的问答,所以我就想整理成一篇文章,这样看起来和理解起来都方便一些。 问题1:什么是epoll的ET/LT模式,select/poll支持吗? ET是edge trigger,也…

K8s in Action 阅读笔记——【9】Deployments: updating applications declaratively

K8s in Action 阅读笔记——【9】Deployments: updating applications declaratively 集群配置: 本章介绍如何更新运行在Kubernetes集群中的应用,以及Kubernetes如何帮助你实现真正的零停机更新过程。虽然这可以仅使用ReplicationControllers或ReplicaSe…

【Spring】javaBean、依赖注入、面向切面AOP、使用注解开发

文章目录 JavaBeanIoC理论基础使用IoC容器使用Spring 生命周期与继承生命周期继承 依赖注入 Dependency Injection基本类型注入非基本类型注入集合注入自动装配注入 面向切面AOP使用SpringAOP环绕方法 使用接口实现AOP 使用注解开发注解实现配置文件注解实现AOP操作其他注解配置…

MongoDB6.0.6 副本集搭建(CentOs8)

本文只说如何操作配置副本集,历程艰难,官网文档看了半天也只说了怎么添加单个,没有给出来一个完整的流程。 1.第一步安装,参考前一篇安装即可。 配置三台虚拟机: 192.168.182.142 192.168.182.143 192.168.182.14…

钉钉小程序页面之间传递数据如何传递对象

今天写代码的时候,发现了一个问题,在钉钉小程序页面之间传递对象数据的时候,如果直接传递一个对象那个的话,接收的那个页面得到的是一个【object Object】,而并非里面的数据,所以针对上述问题,下…

基于Spring Boot的学生志愿者管理系统的设计与实现

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对学生志愿者管理等问题,对学生…

项目计划软件 project安装包的下载和安装教程

目录 简介 安装配置过程 总结: 简介 Project是由微软公司开发的项目管理软件,旨在帮助个人和团队有效地管理项目进度、资源分配、协作和报告等工作,从而提高项目的质量和效率。Project维护项目的进程表、资源清单、成本预算、工作表和报告…

CSS-HTML知识点与高频考题解析

知识点梳理 选择器的权重和优先级 盒模型 盒子大小计算margin 的重叠计算 浮动 float浮动布局概念清理浮动 定位 position文档流概念定位分类fixed 定位特点绝对定位计算方式 flex布局 如何实现居中对齐? 理解语义化 CSS3 动画 重绘和回流 选择器的权重和优…

VTK 开发中遇到问题整理

1 Generic Warning VTK 开发 中是到 vtkOutputWindow 弹窗并提示Generic Warning&#xff1a;… vtkOutputWindow 弹窗 解决方法&#xff1a; 添加&#xff1a; #include <vtkOutputWindow.h> 在 main.cpp函数中添加&#xff1a; vtkOutputWindow::SetGlobalWarningD…

petalinux2022.2在ubantu20.04下的安装

1.Petalinux的下载路径 Downloads 这个是下载petalinux的官网路径。默认是2022.2版本&#xff0c;后期更新的均是以petalinux2022.2版本做的更新。 2.安装流程 在官网下载完成之后&#xff0c;会得到一个名为petalinux-v2022.2-10141622-installer.run的文件&#xff0c;这个文…

linux|磁盘管理工作|lvm逻辑管理卷的创建和使用总结(包括扩容,根目录扩容演示)

前言&#xff1a; 对于运维工作来说&#xff0c;磁盘管理是一个非常重要的工作。当然了&#xff0c;此类工作也是比较偏向底层的一项工作。 一个合理的磁盘分区设置&#xff0c;文件系统格式&#xff0c;以及准确的lvm逻辑管理会对我们的后期的扩展工作&#xff0c;管理工作带…

深入理解设计原则之单一职责原则(SRP)【软件架构设计】

系列文章目录 C高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C并发线程编程 SRP&#xff1a;单一职责原则 系列文章目录1、单一职责原则的定义和解读2、单一职责原则案例解读2.1、违背单一职责原则反面案例2.2、违背单一职责原则反面案例 - 解决方…

Openwrt_XiaoMiR3G路由器_刷入Breed固件

当我刷完Breed后&#xff0c;重启没有进入原来的小米路由器固件&#xff0c;但可以进入breed控制台。目前不清楚那个环节出错了。所以本过程会导致路由器无法再直接使用&#xff01;&#xff01;&#xff01;。 本过程只刷入Breed&#xff0c;接着编译OpenWrt和刷入OpenWrt请参…