Kubernetes-环境篇-02-ubuntu开发环境搭建

1、ubuntu基础环境

# 更新apt软件源
sudo apt update# 安装git
sudo apt install git# 安装python3
sudo apt install -y python3 python3-pip# 安装vim
sudo apt install vim

2、安装go

2.1 下载go安装包

wget https://golang.google.cn/dl/go1.23.2.linux-amd64.tar.gz

2.2 安装go

解压到指定文件中

sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz

此举相当于把gopath安装到了/usr/local/go。

$ ls /usr/local/go/
api  codereview.cfg   doc     lib      misc     pkg        SECURITY.md  test
bin  CONTRIBUTING.md  go.env  LICENSE  PATENTS  README.md  src          VERSION

2.3 设置go环境变量:

sudo vim 打开~/.bashrc文件,追加导出命令

export PATH=$PATH:/usr/local/go/bin

生效环境变量:

source ~/.bashrc

2.4 验证

查看版本:

$ go version
go version go1.23.2 linux/amd64

查看安装位置:

$ which go
/usr/local/go/bin/go

3、安装docker

3.1 安装docker依赖

sudo apt-get install ca-certificates curl gnupg lsb-release

3.2 添加Docker官方GPG密钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

3.3 添加Docker软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

3.4 安装docker

apt-get install docker-ce docker-ce-cli containerd.io

3.5 配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:

sudo usermod -aG docker $USER

3.6 运行docker

systemctl start docker

3.7 安装工具

sudo apt -y install apt-transport-https ca-certificates curl software-properties-common

3.8 重启docker

service docker restart

3.9 验证

$ sudo systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: e>Active: active (running) since Thu 2024-10-03 15:06:06 CST; 15s ago
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 14875 (dockerd)Tasks: 14Memory: 21.8M (peak: 24.1M)CPU: 303msCGroup: /system.slice/docker.service└─14875 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/con>

4、安装kubectl & helm

# 安装 kubectl
sudo snap install kubectl --classic# 安装 helm
sudo snap install helm--classic

验证kubectl

$ kubectl version
Client Version: v1.31.1
Kustomize Version: v5.4.2
The connection to the server localhost:8080 was refused - did you specify the right host or port?

验证helm

$ helm version
version.BuildInfo{Version:"v3.16.1", GitCommit:"5a5449dc42be07001fd5771d56429132984ab3ab", GitTreeState:"clean", GoVersion:"go1.22.7"}

5、安装kubebuilder

github仓库:地址

kubebuilder的官方文档:

  • 英文版
  • 中文版
  • 需要注意:英文版目前最新的是v4版本的,中文版还停留在v2版本

推荐书籍:

  • 《Kubenetes Operator 开发进阶》胡涛

安装方法:

  • 官方文档方法:
    • 安装最新发行版本:
# download kubebuilder and install locally.
curl -L -o kubebuilder "https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)"
chmod +x kubebuilder && mv kubebuilder /usr/local/bin/
  • 安装github代码仓库中,master分支:
curl -L -o kubebuilder "https://go.kubebuilder.io/dl/master/$(go env GOOS)/$(go env GOARCH)"
chmod +x kubebuilder && mv kubebuilder /usr/local/bin/
  • 可能遇到的问题:curl下载失败,比如报错:curl: (35) Encountered end of file。此时推荐使用安装方法二
  • 直接下载kubenetes的可执行文件
    • 先到 github 上找到你需要的发行版本:https://github.com/kubernetes-sigs/kubebuilder/releases
    • 比如我要安装4.2.0,则点击进去:https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v4.2.0
    • 在页面最下面的Assets中,找到所需OS和Arch的安装包,点击即可下载。比如我是linux的arm,就下载这个
# 查看os
go env GOOS
# 查看架构
go env GOARCH

在这里插入图片描述

  • 如果网络ok,也可以直接wget进行下载
#!/bin/bash
wget https://github.com/kubernetes-sigs/kubebuilder/releases/download/v4.2.0/kubebuilder_linux_amd64 -O kubebuilder
  • 进行安装
mv /Users/king/Downloads/kubebuilder_darwin_arm64 ./kubebuilder
chmod +x kubebuilder && sudo mv kubebuilder /usr/local/bin/
  • 验证安装
$ kubebuilder version 
Version: main.version{KubeBuilderVersion:"4.2.0", KubernetesVendor:"1.31.0", GitCommit:"c7cde5172dc8271267dbf2899e65ef6f9d30f91e", BuildDate:"2024-08-17T09:41:45Z", GoOs:"linux", GoArch:"amd64"}

6、安装Kind

官方github仓库地址:https://github.com/kubernetes-sigs/kind.git
国内镜像仓库地址:https://gitcode.com/gh_mirrors/ki/kind/overview

目前最新的tag版本是v0.24.0

# 查看os
go env GOOS
# 查看架构
go env GOARCH

7.1 下载Kind

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64

7.2 安装kind

chmod +x ./kind && sudo mv ./kind /usr/local/bin/kind

7.3 验证kind版本

 kind --version    
kind version 0.24.0

8、开发工具

  • 必须开启go mod,GO111MODULE=on
  • 代理地址推荐:
    • 七牛云:https://goproxy.cn 推荐,可解决依赖问题
    • 阿里云:https://mirrors.aliyun.com/goproxy/ 不推荐,某些包依然无法下载
    • 腾讯:https://goproxy.io,不推荐,有些包无法下载
  • 开发工具推荐:
    • goland:推荐,但是收费
    • idea:可以装go插件,但是可能没有goland适配的好
    • vscode:比较轻量级,但是开发不太方便

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

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

相关文章

【Qt】控件概述(7)—— 布局管理器

布局管理器 1. 布局管理器2. QVBoxLayout——垂直布局3. QHBoxLayout——水平布局4. QGridLayout——网格布局5. QFormLayout——表单布局6. QSpacer 1. 布局管理器 在我们之前值ui界面进行拖拽设置控件时,都是通过手动的控制控件的位置的。同时每个控件的位置都是…

OpenGL ES 纹理(7)

OpenGL ES 纹理(7) 简述 通过前面几章的学习,我们已经可以绘制渲染我们想要的逻辑图形了,但是如果我们想要渲染一张本地图片,这就需要纹理了。 纹理其实是一个可以用于采样的数据集,比较典型的就是图片了,我们知道我…

【STM32开发之寄存器版】(六)-通用定时器中断

一、前言 STM32定时器分类 STM32103ZET6具备8个定时器TIMx(x 1,2,...,8)。其中,TIM1和TIM8为高级定时器,TIM2-TIM6为通用定时器,TIM6和TIM7为基本定时器,本文将以TIM3通用定时器为例,分析STM32定时器工作的底层寄存器…

深度学习基础—残差网络ResNets

1.残差网络结构 当网络训练的很深很深的时候,效果是否会很好?在这篇论文中,作者给出了答案:Deep Residual Learning for Image Recognitionhttps://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/He_Deep_Residual_…

EmEditor传奇脚本编辑器

主程序:EmEditor.exe 目前已有功能 可以自己指定一个快捷键 实现以下功能(默认快捷键为:F1) 以下全功能 都是鼠标所在行 按快捷键 (默认快捷键:F1) 1.在Merchant.txt中 一键打开NPC 没有…

Linux 外设驱动 应用 1 IO口输出

从这里开始外设驱动介绍,这里使用的IMX8的芯片作为驱动介绍 开发流程: 修改设备树,配置 GPIO1_IO07 为 GPIO 输出。使用 sysfs 接口或编写驱动程序控制 GPIO 引脚。编译并测试。 这里假设设备树,已经配置好了。不在论述这个问题…

Steam Deck掌机可装“黑苹果” 开发者成功安装macOS 15 Sequoia

在Steam Deck掌机上运行Windows 11相对轻松,但要让其成功搭载“黑苹果”系统则颇具挑战性。近日,有博主勇于尝试,将macOS 15 Sequoia安装到了Steam Deck上。 开发者kaitlyn在X平台上分享道:“在朋友们的鼎力相助下,我…

SQL专项练习第六天

Hive 在处理不同数据需求时的灵活性和强大功能,包括间隔连续问题的处理、行列转换、交易数据查询、用户登录统计以及专利数据分析等方面。本文将介绍五个 Hive 数据处理问题的解决方案,并通过实际案例进行演示。 先在home文件夹下建一个hivedata文件夹&a…

Unity Shader Graph基础包200+节点及术语解释

目录 Master Stack: Vertex block: Fragment block​编辑 Alpha Clip Threshold Dither transparency Graph Inspector Texture 2d Array/Texture 3d Virtual Texture Sampler State Keywords Boolean keyword 右键显示所有节点 简化测试系列节点&#x…

初入网络学习第一篇

引言 不磨磨唧唧,跟着学就好了,这个是我个人整理的学习内容梳理,学完百分百有收获。 1、使用的网络平台:eNSP 下载方法以及内容参考这篇文章 华为 eNSP 模拟器安装教程(内含下载地址)_ensp下载-CSDN博客https://b…

DBMS-3.4 SQL(4)——存储过程和函数触发器

本文章的素材与知识来自李国良老师和王珊老师。 存储过程和函数 一.存储过程 1.语法 2.示例 (1) 使用DELIMITER更换终止符后用于编写存储过程语句后,在下次执行SQL语句时记得再使用DELIMITER将终止符再换回分号。 使用DELIMITER更换终止符…

数据分布过于集中 怎么办,python 人工智能 ,数据分析,机器学习pytorch tensorflow ,

数据分布过于集中,意味着数据的大部分值都聚集在某个特定区间内,这可能会导致统计分析的结果不够稳健,或者模型训练时出现过拟合等问题。针对这种情况,可以考虑以下几种方法来处理: 变换成 1. **数据转换**&#xff1…

MySQL多表查询:列子查询

先看我的表数据 dept表 emp表 列子查询,也就是多列作为子查询去寻找一些问题 常用操作符:IN, NOT IN, ANY, SOME, ALL 1.查询 "销售部" 和 "市场部" 的所有员工的信息(拆分成以下两个问题) a. 查询"销…

基于STM32的数字温度传感器设计与实现

引言 STM32 是由意法半导体(STMicroelectronics)开发的基于 ARM Cortex-M 内核的微控制器系列,以其强大的处理能力、丰富的外设接口和低功耗著称,广泛应用于嵌入式系统设计中。在这篇文章中,我们将介绍如何基于 STM32…

如何用python抓取豆瓣电影TOP250

1.如何获取网站信息? (1)调用requests库、bs4库 #检查库是否下载好的方法:打开终端界面(terminal)输入pip install bs4, 如果返回的信息里有Successfully installed bs4 说明安装成功(request…

OJ在线评测系统 微服务 OpenFeign调整后端下 nacos注册中心配置 不给前端调用的代码 全局引入负载均衡器

OpenFeign内部调用二 4.修改各业务服务的调用代码为feignClient 开启nacos注册 把Client变成bean 该服务仅内部调用,不是给前端的 将某个服务标记为“内部调用”的目的主要有以下几个方面: 安全性: 内部API通常不对外部用户公开,这样可以防止…

Linux操作系统——概念扫盲I

目录 虚拟机概念刨析 在那之前,询问什么是虚拟化? 现在来看看什么是虚拟机 虚拟机有啥好的 小差:那JVM也叫Java Virtual Machine,有啥区别呢? Reference 虚拟机概念刨析 我们下面来简单聊聊虚拟机这个概念。对于…

嵌入式硬件设计

嵌入式硬件设计是指针对嵌入式系统(一种专用的计算机系统,通常嵌入到其他设备中)进行的硬件设计工作。嵌入式系统广泛应用于消费电子、工业控制、医疗设备、汽车电子、航空航天等领域。以下是嵌入式硬件设计的主要内容和步骤: 1.…

浏览器前端向后端提供服务

WEB后端向浏览器前端提供服务是最常见的场景,前端向后端的接口发起GET或者POST请求,后端收到请求后执行服务器端任务进行处理,完成后向前端发送响应。 那浏览器前端向后端提供服务是什么鬼? 说来话长,长话短说。我在人…

微信步数C++

题目: 样例解释: 【样例 #1 解释】 从 (1,1) 出发将走 2 步,从 (1,2) 出发将走 4 步,从 (1,3) 出发将走 4 步。 从 (2,1) 出发将走 2 步,从 (2,2) 出发将走 3 步,从 (2,3) 出发将走 3 步。 从 (3,1) 出发将…