【Kubernetes】k8s的helm包管理与应用详细说明与操作

  • 修改后成这样【我这使用的是v3.2.1】

改成这样以后呢,就表示,使用这个版本

#1:指定当前版本

checkDesiredVersion() {

TAG=v3.2.1

}

#2:get文件和sha256文件需要在同一路径哈

downloadFile() {

HELM_DIST=“helm- T A G − TAG- TAGOS-$ARCH.tar.gz”

DOWNLOAD_URL=“https://get.helm.sh/$HELM_DIST”

CHECKSUM_URL=“$DOWNLOAD_URL.sha256”

HELM_TMP_ROOT=“$(mktemp -dt helm-installer-XXXXXX)”

HELM_TMP_FILE=“ H E L M T M P R O O T / HELM_TMP_ROOT/ HELMTMPROOT/HELM_DIST”

HELM_SUM_FILE=“ H E L M T M P R O O T / HELM_TMP_ROOT/ HELMTMPROOT/HELM_DIST.sha256”

echo “Downloading $DOWNLOAD_URL”

cp helm-v3.2.1* $HELM_TMP_ROOT

}

#3: 不让判断文件是否存在。

verifyChecksum() {

printf "Verifying checksum… "

local sum=$(openssl sha1 -sha256 ${HELM_TMP_FILE} | awk ‘{print $2}’)

local expected_sum=$(cat ${HELM_SUM_FILE})

echo “Done.”

}

  • 上面3项修改完毕以后呢,保存退出,并给x权限,然后执行该脚本

[root@master helm]# chmod +x get

[root@master helm]# ./get

Downloading https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz

Verifying checksum… Done.

Preparing to install helm into /usr/local/bin

helm installed into /usr/local/bin/helm

[root@master helm]#

执行安装并检测与卸载说明


  • 上面呢helm就装完了【此时是不能使用tab的】

我们查看下版本,能出现版本内容就算安装成功

[root@master helm]# helm version

version.BuildInfo{Version:“v3.2.1”, GitCommit:“fe51cd1e31e6a202cba7dead9552a6d418ded79a”, GitTreeState:“clean”, GoVersion:“go1.13.10”}

[root@master helm]#

  • 上面安装的时候有提示将helm安装到这个路径

所以我们卸载呢就是删除掉该路径内容即可

helm installed into /usr/local/bin/helm

helm子命令使用teb操作


  • 方式1

前面我们的kubectl也是使用的 这种方式

[root@master helm]# cat /etc/profile | head -n 4

/etc/profile

source <(kubectl completion bash)

source <(helm completion bash) # 增加改行内容

[root@master helm]#

[root@master helm]# source /etc/profile

[root@master helm]#

[root@master helm]# hel

helm help

[root@master helm]# helm version

version.BuildInfo{Version:“v3.2.1”, GitCommit:“fe51cd1e31e6a202cba7dead9552a6d418ded79a”, GitTreeState:“clean”, GoVersion:“go1.13.10”}

[root@master helm]#

  • 方式2

上面做了就不能再用这个方式了。知道就行

[root@vms10 ~]# helm completion bash > ~/.helmrc

[root@vms10 ~]# echo “source ~/.helmrc” >> ~/.bashrc

[root@vms10 ~]#

[root@vms10 ~]# source .bashrc

[root@vms10 ~]#

helm仓库管理

=======================================================================

  • 因为这个玩意需要外网才能使用,而我的集群是没有外网的,所以下面只放文档,不做实验,这个其实不难,如果下面理解有难度,可以自行百度查阅困惑内容的相关资料。

配置国内helm源


  • 查看现在使用的仓库:

[root@vms10 ~]# helm repo list

Error: no repositories to show

[root@vms10 ~]#

  • 国内常用的仓库有:

  • 阿里云的源https://apphub.aliyuncs.com【建议用这个】

  • 微软azure 的源http://mirror.azure.cn/kubernetes/charts/

  • 添加仓库的语法:

helm repo add 名称地址

  • 下面把阿里云的源和azure 的源都添加过来:

[root@vms10 ~]# helm repo add azure http://mirror.azure.cn/kubernetes/charts/

“azure” has been added to your repositories

[root@vms10 ~]#

  • 这里是吧zaure 的源添加过来,命名为azure

[root@vms10 ~]# helm repo add ali https://apphub.aliyuncs.com

“ali” has been added to your repositories

[root@vms10 ~]#

  • 这里是把阿里云的源添加过来,命名为ali

查看现在正在使用的源:

[root@vms10 ~]# helm repo list

NAME URL

azure http://mirror.azure.cn/kubernetes/charts/

ali https://apphub.aliyuncs.com

[root@vms10 ~]#

部署应用【部署chart】


查询应用对应的chart

  • 如果我们要部署哪个应用就到仓库里查询这个应用对应的chart,假设我要部署redis

[root@vms10 ~]# mkdir helm

[root@vms10 ~]# cd helm/

[root@vms10 ~]#

[root@vms10 helm]# helm search repo redis

NAME CHART VERSION APP VERSION

DESCRIPTION

ali/prometheus-redis-exporter 3.2.2 1.3.4 Prometheus exporter

for Redis metrics

ali/redis 10.5.3 5.0.7 Open source,

azure/redis 10.5.7 5.0.7 DEPRECATED

[root@vms10 helm]#

部署MySQL为例

  • 下面开始部署MySQL

切换到ns5 命名空间进行操作

[root@vms10 helm]# kubectl create ns ns5

namespace/ns5 created

[root@vms10 helm]# kubens ns5

Context “kubernetes-admin@kubernetes” modified.

Active namespace is “ns5”.

[root@vms10 helm]#

  • 下面开始部署MySQL

通过helm pull 单独把chart 下载下来,如下:

[root@vms10 helm]# helm pull azure/mysql

[root@vms10 helm]# ls

mysql-1.6.4.tgz

[root@vms10 helm]#

  • 解压并进入到MySQL 目录,会有这么几个文件:

  • Chart.yaml 是chart 的描述信息

  • README.md 是此chart 的帮助信息

  • templates 目录里是各种模板,比如定义svc,定义pvc 等

  • values.yaml里记录的是chart 的各种信息,比如镜像是什么,root 密码是什么,是否使用持久性存储等

[root@vms10 helm]# cd mysql/

[root@vms10 mysql]# ls

Chart.yaml README.md templates values.yaml

[root@vms10 mysql]#

  • 编辑values.yaml 并按照如下修改

指定自己要使用的镜像,按如下修改【其实就是些创建pod规则,有很多内容,不需要的选项可以注释掉,具体哪些不需要,不同应用有不同的规则。】

在这里插入图片描述

  • 指定MySQL 的root 密码,注意这里前面不能留有空格:

在这里插入图片描述

  • 如果要创建普通用户和密码,就修改如下两行,这里我们没有指定

在这里插入图片描述

  • 是否要使用持久性存储,如果不使用的话就把enabled 的值改成false:

在这里插入图片描述

注意:可以用vim 编辑器搜索persistence。

  • 关于values.yaml 的其他部分保持默认值即可,保存退出

安装&删除mysql

  • 安装应用的命令为helm install 名字chart 目录

在当前目录里执行安装操作:

[root@vms10 mysql]# helm install db . #最后的点,表示当前目录

NAME: db

LAST DEPLOYED: Tue Jun 9 13:05:58 2020

NAMESPACE: ns5

STATUS: deployed

…大量输出…

Execute the following command to route the connection:

kubectl port-forward svc/db-mysql 3306

mysql -h M Y S Q L H O S T − P {MYSQL_HOST} -P MYSQLHOSTP{MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}

[root@vms10 mysql]#

  • 查看现在已经部署的release 及pod

[root@vms10 mysql]# helm ls

NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION

db ns5 1 2020-06-0…T deployed mysql-1.6.4 5.7.30

[root@vms10 mysql]#

[root@vms10 mysql]# kubectl get pods

NAME READY STATUS RESTARTS AGE

db-mysql-84f68ddfdc-m6xgq 1/1 Running 0 92s

[root@vms10 mysql]#

  • 安装mariadb 客户端:

[root@vms10 mysql]# yum install mariadb -y

…输出…

作为依赖被升级:

mariadb-libs.x86_64 1:5.5.65-1.el7

完毕!

[root@vms10 mysql]#

  • 查看mysql pod 的IP:

[root@vms10 mysql]# kubectl get pods -o wide --no-headers

db-mysql-84f68ddfdc-m6xgq 1/1 Running 0 3m18s 10.244.14.41 …

[root@vms10 mysql]#

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

(img-K9yU0FeF-1712464251459)]

SpringBoot面试专题

[外链图片转存中…(img-Q1Iub2cf-1712464251459)]

zookeeper面试专题

[外链图片转存中…(img-rLtk9egf-1712464251459)]

常见面试算法题汇总专题

[外链图片转存中…(img-fmjucAv3-1712464251460)]

计算机网络基础专题

[外链图片转存中…(img-ImJj4erw-1712464251460)]

设计模式专题

[外链图片转存中…(img-ehbcz4Da-1712464251460)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值