nexus helm proxy 集成&&问题解决
对于使用kubernetes 进行开发的人员来说helm是很方便的
构建nexus helm plugin
git clone https://github.com/sonatype-nexus-community/nexus-repository-helm.git
mvn clean package
安装配置插件
官方介绍了好几种方法 ,有临时方法以及很久方式,永久方法有两种
a. copy deploy 目录, 插件加载成功,但是没有helm proxy 的选项
b. copy plugins + 配置
我选择的是b
以下为官方说明,按照操作即可:
Copy the bundle into <nexus_dir>/system/org/sonatype/nexus/plugins/nexus-repository-helm/0.0.1/nexus-repository-helm-0.0.1.jar
Make the following additions marked with + to <nexus_dir>/system/org/sonatype/nexus/assemblies/nexus-core-feature/3.x.y/nexus-core-feature-3.x.y-features.xml
<feature prerequisite="false" dependency="false">nexus-repository-rubygems</feature>
<feature prerequisite="false" dependency="false">nexus-repository-helm</feature>
<feature prerequisite="false" dependency="false">nexus-repository-gitlfs</feature>
</feature>
And
<feature name="nexus-repository-helm" description="org.sonatype.nexus.plugins:nexus-repository-helm" version="0.0.1">
<details>org.sonatype.nexus.plugins:nexus-repository-helm</details>
<bundle>mvn:org.sonatype.nexus.plugins/nexus-repository-helm/0.0.1</bundle>
</feature>
使用插件
因为墙的问题,我使用了阿里云的helm 仓库 https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
- 添加仓库
helm repo add myhelm http://hostip:8081/repository/helm-proxy/
- 查找helm
helm search myhelm/wordpress
NAME CHART VERSION APP VERSION DESCRIPTION
myhelm/wordpress 0.8.8 4.9.4 Web publishing platform for building blogs and …
- 安装helm 应用
helm install myhelm/wordpress
NAME: undercooked-lynx
LAST DEPLOYED: Mon May 28 19:45:24 2018
NAMESPACE: default
STATUS: DEPLOYED
RESOURCES:
==> v1/Secret
NAME TYPE DATA AGE
undercooked-lynx-mariadb Opaque 2 1s
undercooked-lynx-wordpress Opaque 2 1s
==> v1/ConfigMap
NAME DATA AGE
undercooked-lynx-mariadb 1 1s
undercooked-lynx-mariadb-tests 1 1s
==> v1/PersistentVolumeClaim
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
undercooked-lynx-mariadb Bound pvc-9c033e0b-626c-11e8-87fd-025000000001 8Gi RWO hostpath 1s
undercooked-lynx-wordpress Pending hostpath 1s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
undercooked-lynx-mariadb ClusterIP 10.103.123.26 <none> 3306/TCP 1s
undercooked-lynx-wordpress LoadBalancer 10.98.149.4 localhost 80:31079/TCP,443:31156/TCP 1s
==> v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
undercooked-lynx-mariadb 1 1 1 0 1s
undercooked-lynx-wordpress 1 1 1 0 1s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
undercooked-lynx-mariadb-6b9d6595f6-rx8nd 0/1 Init:0/1 0 1s
undercooked-lynx-wordpress-75b44799fb-zv2qv 0/1 ContainerCreating 0 1s
NOTES:
1. Get the WordPress URL:
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace default -w undercooked-lynx-wordpress'
export SERVICE_IP=$(kubectl get svc --namespace default undercooked-lynx-wordpress -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP/admin
2. Login with the following credentials to see your blog
echo Username: user
echo Password: $(kubectl get secret --namespace default undercooked-lynx-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)
- proxy 效果
总结
总的来说对于集成了docker npm maven 来说还是比较好的,只是不支持host 模式,实际上开源的
chartmuseum 就挺好的,同时也有UI界面
参考资料
https://github.com/sonatype-nexus-community/nexus-repository-helm
https://yq.aliyun.com/articles/159601