kubernetes集群编排(9)

目录

helm

部署helm

封装chart包

上传chart到OCI仓库

部署wordpress博客系统

helm部署storageclass

helm部署ingress-nginx

helm部署metrics-server

kubeapps

更新


helm

部署helm

官网: Helm | 快速入门指南

https://github.com/helm/helm/releases

[root@k8s2 ~]# tar zxf helm-v3.11.0-linux-amd64.tar.gz
[root@k8s2 ~]# cd linux-amd64/
[root@k8s2 linux-amd64]# mv helm  /usr/local/bin/

配置helm命令补齐

[root@k8s2 ~]# echo "source <(helm completion bash)" >> ~/.bashrc
[root@k8s2 ~]# source ~/.bashrc
[root@k8s2 ~]# helm version

查询官方应用中心

[root@k8s2 ~]# helm search hub nginx

添加第三方repo源

[root@k8s2 ~]# helm repo add my-repo https://charts.bitnami.com/bitnami
"my-repo" has been added to your repositories
[root@k8s2 ~]# helm  repo  list

拉取应用

[root@k8s2 helm]# helm  pull my-repo/nginx
[root@k8s2 helm]# tar zxf nginx-13.2.29.tgz
[root@k8s2 helm]# cd nginx/

按需修改

[root@k8s2 nginx]# vim values.yaml

上传镜像

[root@k8s1 ~]# docker pull bitnami/nginx:1.23.3-debian-11-r33
[root@k8s1 ~]# docker tag bitnami/nginx:1.23.3-debian-11-r33 reg.westos.org/bitnami/nginx:1.23.3-debian-11-r33
[root@k8s1 ~]# docker push reg.westos.org/bitnami/nginx:1.23.3-debian-11-r33

部署应用

[root@k8s2 nginx]# helm  install myapp .

再次修改配置

[root@k8s2 nginx]# vim values.yaml

更新应用

[root@k8s2 nginx]# helm upgrade myapp .

查看应用

[root@k8s2 nginx]# helm list

查看应用历史

[root@k8s2 helm]# helm  history myapp

回滚应用

[root@k8s2 nginx]# helm  rollback myapp 1

回收

[root@k8s2 helm]# helm uninstall myapp

封装chart包

[root@k8s2 helm]# helm  create mychart        //创建一个名为mychart的Helm chart

[root@k8s2 mychart]# vim Chart.yaml        //元数据文件

[root@k8s2 mychart]# vim values.yaml        //默认配置文件

检测语法

[root@k8s2 helm]# helm lint mychart/        //检测语法
[root@k8s2 helm]# helm package mychart/            //打包
[root@k8s2 helm]# helm install  myapp mychart-0.1.0.tgz        //部署应用
[root@k8s2 helm]# helm  list            //列出当前安装的所有Helm chart
[root@k8s2 helm]# helm uninstall myapp            //回收

 

测试

更新

查看历史、回滚

上传chart到OCI仓库

复制仓库证书

[root@k8s2 helm]# cp /etc/docker/certs.d/reg.westos.org/ca.crt /etc/pki/tls/certs/

登录仓库

[root@k8s2 helm]# helm  registry login reg.westos.org -u admin -p shg12345

查看默认缓存信息

[root@k8s2 helm]# helm env

提前在harbor仓库创建charts项目,这个仓库专门存放chart包

上传chart

helm  push mychart-0.2.0.tgz oci://reg.westos.org/charts

下载chart,默认下载最新版本

helm pull oci://reg.westos.org/charts/mychart		
helm pull oci://reg.westos.org/charts/mychart --version 0.2.0

安装chart

helm install myapp oci://reg.westos.org/charts/mychart  --version 0.2.0

升级

helm upgrade  myapp oci://reg.westos.org/charts/mychart --version 0.3.0

部署wordpress博客系统

部署mysql数据库集群

vim mysql-values.yaml
global:imageRegistry: reg.westos.org
architecture: replication
auth:rootPassword: westosdatabase: wordpressusername: wordpresspassword: wordpressreplicationUser: replicatorreplicationPassword: westoshelm install --wait mydbcluster -f mysql-values.yaml mysql-9.14.2.tgz

查看部署信息

helm  get manifest mydbcluster |kubectl get -f -

连接数据库

MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mydbcluster-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)
echo $MYSQL_ROOT_PASSWORDkubectl run mydbcluster-mysql-client --rm --tty -i --restart='Never' --image  reg.westos.org/bitnami/mysql:8.0.35-debian-11-r0 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash

连接主库

mysql -h mydbcluster-mysql-primary.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"

连接从库

mysql -h mydbcluster-mysql-secondary.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"

部署wordpress

vim wordpress-values.yaml
global:imageRegistry: reg.westos.org
wordpressUsername: james
wordpressPassword: james
mariadb:enabled: false
externalDatabase:host: mydbcluster-mysql-primaryuser: wordpresspassword: wordpressdatabase: wordpresshelm  install myblog -f wordpress-values.yaml wordpress-18.1.6.tgz

等待myblog初始化完毕

kubectl logs  myblog-wordpress-*  -f

获取myblog 外部IP

helm get manifest  myblog |kubectl get -f -

使用浏览器访问wordpress

http://EXTERNAL-IP/admin

登录用户、密码: james/james

升级mydbcluster

vim mysql-values-update.yaml
global:imageRegistry: reg.westos.org
architecture: replication
auth:rootPassword: westosdatabase: wordpressusername: wordpresspassword: wordpressreplicationUser: replicatorreplicationPassword: westos
secondary:replicaCount: 2helm upgrade --atomic --timeout 10m mydbcluster -f mysql-values-update.yaml mysql-9.14.2.tgz

查看历史修订

helm  history  mydbcluster
helm get manifest mydbcluster --revision 1

回滚版本

helm  rollback mydbcluster 1
helm  history  mydbcluster

helm部署storageclass

删除原有的部署

[root@k8s2 nfs]# ls
class.yaml  deployment.yaml  pod.yaml  pvc.yaml  rbac.yaml
[root@k8s2 nfs]# kubectl delete  -f .

添加repo

[root@k8s2 helm]# helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

[root@k8s2 ~]# helm search  repo nfs-subdir-external-provisioner[root@k8s2 helm]# helm  pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
[root@k8s2 helm]# tar zxf nfs-subdir-external-provisioner-4.0.18.tgz
[root@k8s2 helm]# cd nfs-subdir-external-provisioner/
[root@k8s2 nfs-subdir-external-provisioner]# vim values.yaml

创建namespace

[root@k8s2 nfs-subdir-external-provisioner]# kubectl create namespace nfs-provisioner

部署应用

[root@k8s2 nfs-subdir-external-provisioner]# helm  install nfs-provisioner . -n nfs-provisioner

方法二

[root@k8s2 helm]#vim nfs-client-values.yaml
image:repository: sig-storage/nfs-subdir-external-provisionertag: v4.0.2
nfs:server: 192.168.81.10path: /nfsdata
storageClass:defaultClass: truereclaimPolicy: DeletearchiveOnDelete: falsekubectl create namespace nfs-provisioner
helm  -n nfs-provisioner install nfs-client --wait -f charts/values/nfs-client-values.yaml nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --version 4.0.18

测试

[root@k8s2 nfs]# kubectl apply -f pvc.yaml
[root@k8s2 nfs]# kubectl get pvc

helm部署ingress-nginx

回收原有部署

[root@k8s2 ingress]# kubectl delete  -f deploy.yaml
[root@k8s2 helm]# helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
[root@k8s2 ~]# helm search repo ingress-nginx
[root@k8s2 helm]# helm  pull ingress-nginx/ingress-nginx
[root@k8s2 helm]# tar zxf ingress-nginx-4.8.3.tgz
[root@k8s2 helm]# cd ingress-nginx/
[root@k8s2 ingress-nginx]# vim values.yaml

创建namespace

[root@k8s2 ingress-nginx]# kubectl create namespace ingress-nginx

部署应用

[root@k8s2 ingress-nginx]# helm  install ingress-nginx . -n ingress-nginx

方法二 

vim ingress-nginx-values.yaml
controller:image:registry: reg.westos.orgimage: ingress-nginx/controllertag: "v1.9.4"digest: ""digestChroot: ""ingressClassResource:name: nginxdefault: trueservice:type: LoadBalanceradmissionWebhooks:patch:image:registry: reg.westos.orgimage: ingress-nginx/kube-webhook-certgentag: v20231011-8b53cabe0digest: ""kubectl create namespace ingress-nginx
helm  -n ingress-nginx install ingress-nginx -f ingress-nginx-values.yaml ingress-nginx-4.8.3.tgz
helm -n ingress-nginx get manifest ingress-nginx |kubectl get -f -

测试

helm部署metrics-server

回收原有部署

[root@k8s2 metrics]# kubectl delete  -f components.yaml[root@k8s2 helm]# helm repo add metrics-server 
[root@k8s2 dashboard]# helm  search repo metrics-server
[root@k8s2 helm]# helm  pull metrics-server/metrics-server
[root@k8s2 helm]# tar zxf metrics-server-3.8.4.tgz
[root@k8s2 helm]# cd metrics-server
[root@k8s2 metrics-server]# vim values.yaml

创建namespace

[root@k8s2 metrics-server]# kubectl create namespace metrics-server

部署应用

[root@k8s2 metrics-server]# helm  install metrics-server . -n metrics-server

方法二:

vim metrics-server-values.yaml
image:repository: metrics-server/metrics-servertag: "v0.6.4"
defaultArgs:- --cert-dir=/tmp- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname- --kubelet-use-node-status-port- --metric-resolution=15s- --kubelet-insecure-tlskubectl create namespace metrics-server
helm -n metrics-server install metrics-server -f charts/values/metrics-server-values.yaml metrics-server-3.11.0.tgz

kubeapps

更新

上传镜像

vim kubeapps-values.yaml
global:imageRegistry: reg.westos.org
ingress:enabled: truehostname: kubeapps.westos.orgingressClassName: nginx
postgresql:primary:persistence:enabled: true
redis:master:persistence:enabled: truekubectl create namespace kubeapps
helm  -n kubeapps install kubeapps -f kubeapps-values.yaml kubeapps-14.0.2.tgz

kubectl -n kubeapps edit svc kubeapps

kubectl create serviceaccount kubeapps-operator -n kubeapps
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=kubeapps:kubeapps-operator
kubectl -n kubeapps create token kubeapps-operator

用token访问192.168.81.102

 

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

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

相关文章

97 只出现一次的数字

只出现一次的数字 题解1 异或的应用&#xff08;判断出现次数是奇偶&#xff09; 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题…

Antv/G2 图表背景实线改为虚线

坐标轴 - Axis 文档 绘图属性 - ShapeAttrs 文档 图表背景实线改为虚线代码示例&#xff1a; chart.axis("value", {grid: {// 背景网格刻度线样式line: {style: {lineWidth: 0.5,lineDash: [5, 2], //虚线},},}, });未设置前页面效果&#xff1a; 添加代码配置&…

第十八章总结

一.Swing概述 二.Swing常用窗体 1.JFrame窗体 创建一个不可见、具有标题的窗体&#xff0c;关键代码&#xff1a; JFrame jfnew JFrame("登陆系统"); Container containerjf.getContentPane(); 在创建窗体后&#xff0c;先调用getContentPane()方法将窗体转…

工业镜头接口类型

现有产品主要有以下接口 1、C:最常见的工业相机接口&#xff0c;受限于接口物理尺寸大小&#xff0c;最大靶面目前是4/3” 2、M42:M421.0,2k和4k线阵相机使用 3、M58S:M580.75,大靶面相机使用&#xff0c;可以转C(限于CH080相机&#xff0c;靶面4/3”)&#xff0c;可以转F,可以…

如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

Leetcode—102.二叉树的层序遍历【中等】

2023每日刷题&#xff08;二十四&#xff09; Leetcode—102.二叉树的层序遍历 C语言BFS实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Return an array of arr…

GPT-4.0网页平台-ChatYY

ChatYY的优势&#xff1a; 1. 支持大部分AI模型&#xff0c;且支持AI绘画&#xff1a; 2. 问答响应速度极快&#xff1a; 3. 代码解析&#xff1a; 4. 支持文档解读&#xff1a; 5. PC、移动端均支持&#xff1a; 访问直达&#xff1a;ChatYY.com

开发知识点-Django

Django 1 了解简介2 Django项目结构3 url 地址 和视图函数4 路由配置5 请求及响应6 GET请求和POST请求查询字符串 7 Django设计模式及模板层8 模板层-变量和标签9 模板层-过滤器和继承继承 重写 10 url反向解析11 静态文件12 Django 应用及分布式路由创建之后 注册 一下 13 模型…

STM32笔记—DMA

目录 一、DMA简介 二、DMA主要特性 三、DMA框图 3.1 DMA处理 3.2 仲裁器 3.3 DMA通道 扩展: 断言&#xff1a; 枚举&#xff1a; 3.4 可编程的数据传输宽度、对齐方式和数据大小端 3.5 DMA请求映像 四、DMA基本结构 4.1 DMA_Init配置 4.2 实现DMAADC扫描模式 实现要求…

matlab 点云最小二乘拟合平面(PCA法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 见:matlab 点云最小二乘拟合平面(PCA法详细过程版)。 二、代码实现 clc;clear; %% --------

BIM、建筑机器人、隧道工程施工关键技术

一、BIM简介 &#xff08;一&#xff09;BIM概念 BIM&#xff08;Building Information Modeling&#xff09;&#xff0c;建筑信息模型。该技术通过数字化手段&#xff0c;在计算机中建立虚拟建筑&#xff0c;该虚拟建筑提供从单一到完整、包含逻辑关系的建筑信息库。信息库…

Selenium关于内容信息的获取读取

在进行自然语言处理、文本分类聚类、推荐系统、舆情分析等研究中,通常需要使用新浪微博的数据作为语料,这篇文章主要介绍如果使用Python和Selenium爬取自定义新浪微博语料。因为网上完整的语料比较少,而使用Selenium方法有点简单、速度也比较慢,但方法可行,同时能够输入验…