参考:
https://www.kusionstack.io/karpor/
添加helm仓库
helm repo add kusionstack https://kusionstack.github.io/charts
helm repo update
Install/Upgrade locally with helm
git clone https://github.com/KusionStack/charts.git
cd charts
cd versions/karpor/0.4.0/templates
ls -l
elasticsearch.yml
etcd.yml
job.yml
karpor-server.yml
karpor-sync.yml
namespace.yml
准备镜像
找到各自的镜像分别下载,然后再推入自己的私有仓库中
docker.elastic.co/elasticsearch/elasticsearch:8.6.2 比较大,下载比较慢
quay.io/coreos/etcd:v3.5.11
golang:1.19
kusionstack/karpor:v0.4.0
golang
golang:1.19涉及到从代理下载文件,需要修改一下环境变量,使用国内的代理下载
修改job.yml
image: yourharbor/yourlibrary/golang:1.19
env: #添加一个变量, 参考:https://www.cnblogs.com/haojile/p/13144030.html
- name: GOPROXY
value: "https://goproxy.cn"
安装后job会先执行,做一些初始化的工作,然后再是启动 karpor-server 和 karpor-sync 服务
kusionstack/karpor镜像制作
kusionstack/karpor:v0.4.0镜像下载不到,需要自己打一个镜像并推送至私有仓库
下载源代码(主要使用其中的配置文件和Dockerfile文件)
git clone https://github.com/KusionStack/karpor.git
源码使用的go需要编译,我们直接下载编译好的文件即可
wget https://github.com/KusionStack/karpor/releases/download/v0.4.0/karpor_0.4.0_linux_amd64.tar.gz
参考Dockerfile文件将配置文件和可执行文件karpor复制到镜像中
Dockerfile
#alpine:3.17.3 这个镜像也不好下载,或者下载一个其它版本的,我是用的仓库里现成的一个版本
FROM alpine:3.17.3 AS production
USER root
WORKDIR /
COPY karpor/config/relationship.yaml .
COPY karpor_0.4.0_linux_amd64.tar.gz .
RUN tar -xvf karpor_0.4.0_linux_amd64.tar.gz
RUN chmod 777 /karpor
ENTRYPOINT ["/karpor"]
docker build -t yourharbor/kusionstack/karpor:v0.4.0 .
docker push yourharbor/kusionstack/karpor:v0.4.0
修改yml文件中的镜像地址
修改charts/versions/karpor/0.4.0/templates目录下各yml文件中的镜像地址为你的私有仓库
helm本地安装
helm install karpor charts/charts/karpor #就是前面charts.git下载的目录
遇到问题了就卸载
helm uninstall karpor
检查一下
[root@yourNode ~]# kubectl get po -A -owide |grep karpor
karpor elasticsearch-xxxxxx-xxxxxx 1/1 Running
karpor etcd-0 1/1 Running
karpor karpor-generate-cert-xxxxxx 0/1 Completed
karpor karpor-server-xxxxxx-xxxxxx 0/1 ContainerCreating
karpor karpor-syncer-xxxxxx-xxxxxx 0/1 ContainerCreating
job对应的pod是karpor-generate-cert-xxxxxx, 待它完成后karpor-server和karpor-syncer才会成功
修改service,配置一个外网可访问的端口
kubectl edit svc -n karpor karpor-server
修改为type: NodePort,自动生成一个外网端口
kubectl get svc -A -owide |grep karpor
访问该服务
https://外网IP:3xxxx
上传config
接入集群里上传K8S的配置文件后才可以使用
$HOME/.kube/config
enjoy yourself!