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

news2024/10/4 9:42:28

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 Engine
     Loaded: 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.socket
       Docs: https://docs.docker.com
   Main PID: 14875 (dockerd)
      Tasks: 14
     Memory: 21.8M (peak: 24.1M)
        CPU: 303ms
     CGroup: /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.coloradmin.cn/o/2187776.html

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

相关文章

第十二届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)(第一套)

一.题目分析 (1).题目 (2).题目分析 1.串口功能分析 a.串口接收车辆出入信息:通过查询车库的车判断车辆是进入/出去 b.串口输出计费信息:输出编号,时长和费用 c.计算停车时长是难点&#x…

深度学习-----------------机器翻译与数据集

目录 机器翻译与数据集下载和预处理数据集预处理步骤词元化词汇表该部分总代码 固定长度阶段或填充该部分总代码 转换成小批量数据集用于训练训练模型总代码 机器翻译与数据集 import os import torch from d2l import torch as d2l下载和预处理数据集 #save d2l.DATA_HUB[fr…

被字节恶心到了

字节 日常逛 xhs 看到一篇吐槽贴,表示被公司恶心到了: 这位网友表示,最近是公司举办了 Q2 和 H1 的优秀员工表彰,自己的 1(直属领导)评上了,但仔细一看,1 获奖的所有产出都是自己的&…

sql注入第7关(学习记录)

看到这里好像和前面的不一样了,多了个use outfile 先输入个符号,看报错,还是得看别人的教程,通过查找,好像要通过图片来进行注入,ok呀,又是新的方式, 首先我们需要知道他的闭合方式…

uniapp+Android智慧居家养老服务平台 0fjae微信小程序

目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 老年人 登…

算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测

🔥 内容介绍 近年来,随着大数据时代的到来和计算能力的飞速提升,对复杂系统进行精确预测的需求日益增长。多变量时间序列预测作为一项关键技术,广泛应用于金融、能源、交通等诸多领域。传统的预测方法,例如ARIMA和多元…

Prometheus Metrics和PromQL的使用

Metrics 官方解释是 Metrics are numerical measurements in layperson terms. (通俗地讲,Metrics就是数字测量) Prometheus fundamentally stores all data as time series (Prometheus把所有数据都存储为时间序列) Every time series is u…

《PMI-PBA认证与商业分析实战精析》第6章 跟踪与监督

第6章 跟踪与监督 本章主要内容包括: 跟踪 关系与依赖性 批准需求 基线化已批准需求 使用跟踪矩阵来监督需求 需求生命周期 管理需求变更 本章涵盖的考试重点: 跟踪与监督的六项活动 跟踪与监督六项活动的可交付成果及活动间的关系 跟踪的定义…

指南:Linux常用的操作命令!!!

引言: 操作系统是软件的一类。 主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁。 尽管图形化是大多数人使用计算机的第一选择,但是在Linux操作系统上多数都是使用的:命令行在开发中,使用命令行形式&#xff0c…

【有啥问啥】联邦学习(Federated Learning, FL):保护隐私的分布式机器学习

联邦学习(Federated Learning, FL):保护隐私的分布式机器学习 联邦学习(Federated Learning, FL)作为一种前沿的分布式机器学习技术,正逐步成为解决数据隐私保护与模型性能提升之间矛盾的关键方案。以下是…

HTTP Cookie与Session

目录 一. 引入Cookie 1.1 定义 1.2 工作原理 1.3 分类 二. 认识Cookie 三. 测试Cookie 五. 引入Session 六. 测试Session 这篇博客,我们来看看Cookie与Session,内容干货满满。 一. 引入Cookie 1.1 定义 HTTP Cookie&…

幂等性及技术解决方案

目录 定义幂等性 为什么需要幂等性幂等性设计注意事项幂等性的范围分布式锁解决幂等性 设计 延伸阅读 定义幂等性 简单地说,我们可以多次执行幂等运算而不改变结果或者使用相同的输入参数中被调用多次,则不具有额外效果的操作,也就是多次执…

使用pytdx获取历史股票行情

使用pytdx获取历史股票行情 先看效果pytdx基础获取历史股票行情将历史数据存入数据库 先看效果 获取从2010年01月01日-2024年09月30日的股票数据 pytdx基础 https://blog.csdn.net/firexiaHouse/article/details/142687052?spm1001.2014.3001.5501 获取历史股票行情 def …

C++11--智能指针

引入 为什么需要智能指针? 在介绍异常时,遇到以下场景,处理异常就会比较棘手: void Func() {int* arr1 new int[10];int* arr2 new int[20];int* arr3 new int[30];// ...delete[] arr1;delete[] arr2;delete[] arr3; }这里…

一文吃透 SpringBoot (从入门到精通)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

15分钟学 Python 第35天 :Python 爬虫入门(一)

Day 35 : Python 爬虫简介 1.1 什么是爬虫? 网页爬虫(Web Crawler)是自动访问互联网并提取所需信息的程序。爬虫的主要功能是模拟用户通过浏览器访问网页的操作,从而实现对网页内容的批量访问与信息提取。它们广泛应用于数据收集…

【IPv6】IPv6地址格式及地址分类(组播、单播、任播)整理

IPv6地址格式 IPv6 地址从 IPv4 地址的 32 bits 扩展到 128 bits,IPv6 地址的表示、书写方式也从 IPv4 的点分十进制,修改16进制的冒号分割 IPv4 点分格式(.) 192.168.11.11 IPv6 冒号分割(:) 2408:8459:3032:0000:0000:0000:0001:a9fd IPv6 的规范…

平面电磁波的电场能量磁场能量密度相等,注意电场能量公式也没有复数形式(和坡印廷类似)

1、电场能量密度和磁场能量密度相等(实数场算的) 下面是电场能量密度和磁场能量密度的公式,注意这可不是坡印廷定理。且电场能量密度没有复数表达式,即不是把E和D换成复数形式就行的。注意,一个矢量可以转化为复数形式,两个矢量做…

6.4 数据处理架构模式和实践

6.4 数据处理架构模式和实践 目录概述需求: 设计思路实现思路分析1.批处理架构2.实时处理架构3.流处理架构4.微服务架构(重点)5.数据湖架构6.数据仓库架构 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , s…

Java | Leetcode Java题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinArrowShots(int[][] points) {if (points.length 0) {return 0;}Arrays.sort(points, new Comparator<int[]>() {public int compare(int[] point1, int[] point2) {if (point1[1] > point2[1…