helm和helm3
用helm部署项目到k8s上,网上找的windows下载版本,然后用阿里云镜像初始化就行helm init --client-only --stable-repo-url https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/...
Helm工作原理
Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。用
helm部署项目到k8s上,下面是github链接,然后用阿里云镜像初始化就行,github链接如下
https://github.com/helm/helm/releases
我下的2.15.0版本
下面有我的helm3教程,现在我主要用helm3了,附送一个helm hub,里面有各种chart,按照官网教程即可,然后密码什么可以输入:
minikube dashboard进入k8s管理页面的secret获取
helm hub
C:\Users\Administrator>helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.15.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
$HELM_HOME has been configured at C:\Users\Administrator\.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
C:\Users\Administrator\windows-amd64>helm version
Client: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}
查看version这个要等tiller建好后,不要着急,先用阿里云镜像下载helm的tiller默认在k8s的kube-system里面,显示要授权,当然这个github的安装包里面也有一个tiller.exe,可以启动一下,我这里用的2.15.0镜像,因为和我的helm版本对应
我这里用阿里云镜像 创建TLS认证地址
C:\Users\Administrator>kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
clusterrolebinding.rbac.authorization.k8s.io/tiller-cluster-rule created
授权,但是这个没奏效,我就用另一个方法了,网上找的方法是这样的
kubectl patch deploy --namespace kube-system tiller-deploy -p
'{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
显示字符串读取失败,json格式报错 因为上面命令的goLong型字符串适合linux系统,windows系统这个字符串转换成json格式,可以换成如下json格式
kubectl patch deploy --namespace kube-system tiller-deploy -p "{\"spec\":{\"template\":{\"spec\":{\"serviceAccount\":\"tiller\"}}}}"
用这个就通了哦
C:\Users\Administrator>kubectl -n kube-system get pods
NAME READY STATUS RESTARTS AGE
coredns-67c766df46-jpw7d 1/1 Running 0 22m
coredns-67c766df46-z2lbh 1/1 Running 3 21h
etcd-minikube 1/1 Running 29 7d19h
kube-addon-manager-minikube 1/1 Running 13 7d19h
kube-apiserver-minikube 1/1 Running 64 7d19h
kube-controller-manager-minikube 1/1 Running 5 28h
kube-proxy-nn5nt 1/1 Running 13 7d19h
kube-scheduler-minikube 1/1 Running 30 7d19h
kubernetes-dashboard-7c54d59f66-p89db 0/1 ImagePullBackOff 0 21h
metrics-server-5d9c56cffd-nqkws 1/1 Running 11 5d21h
storage-provisioner 1/1 Running 25 7d19h
tiller-deploy-64ddd4864d-hqfwp 1/1 Running 0 11m
查看是否安装成功,这里可以看见最后一行tiller-deploy已经running了,那就是没毛病了。
装好helm后第一件事就是去拉一下chart
进入下面官方网址:
helm的charts官网
点击stable,里面有很多好东西,人家给你搭建好了,直接用就可以了,我第一个搭建的rabbitmq集群,我在rabbitmq-ha
点进去有安装教程
也可以在终端输入helm search命令查看可以用的charts
C:\Users\Administrator\windows-amd64>helm install --name my-release stable/rabbitmq-ha
NAME: my-release
LAST DEPLOYED: Sun Oct 20 22:14:55 2019
NAMESPACE: default
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
my-release-rabbitmq-ha 2 1s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
my-release-rabbitmq-ha-0 0/1 Init:0/1 0 1s
==> v1/Role
NAME AGE
my-release-rabbitmq-ha 1s
==> v1/RoleBinding
NAME AGE
my-release-rabbitmq-ha 1s
==> v1/Secret
NAME TYPE DATA AGE
my-release-rabbitmq-ha Opaque 6 1s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-release-rabbitmq-ha ClusterIP None <none> 15672/TCP,5672/TCP,4369/TCP 1s
my-release-rabbitmq-ha-discovery ClusterIP None <none> 15672/TCP,5672/TCP,4369/TCP 1s
==> v1/ServiceAccount
NAME SECRETS AGE
my-release-rabbitmq-ha 1 1s
==> v1/StatefulSet
NAME READY AGE
my-release-rabbitmq-ha 0/3 1s
NOTES:
** Please be patient while the chart is being deployed **
Credentials:
Username : guest
Password : $(kubectl get secret --namespace default my-release-rabbitmq-ha -o jsonpath="{.data.rabbitmq-password}" | base64 --decode)
Management username : management
Management password : $(kubectl get secret --namespace default my-release-rabbitmq-ha -o jsonpath="{.data.rabbitmq-management-password}" | base64 --decode)
ErLang Cookie : $(kubectl get secret --namespace default my-release-rabbitmq-ha -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 --decode)
RabbitMQ can be accessed within the cluster on port 5672 at my-release-rabbitmq-ha.default.svc.cluster.local
To access the cluster externally execute the following commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app=rabbitmq-ha" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward $POD_NAME --namespace default 5672:5672 15672:15672
To Access the RabbitMQ AMQP port:
amqp://127.0.0.1:5672/
To Access the RabbitMQ Management interface:
URL : http://127.0.0.1:15672
这里的export在windows是用set代替
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191020221801787.png?x-oss-process=
执行install命令后看见了如上信息
有一行获取password命令改成如下
kubectl get secret --namespace default my-release-rabbitmq-ha -o jsonpath="{.data.rabbitmq-password}"
因为我是在windows上用所以|bash64这个东西不存在的
management的密码也是同理要去掉|base64后面的命令
最后一行端口信息127.0.0.1:15672直接进入浏览器复制该ip和端口就可以访问rabbitmq啦
输入minikube dashboard命令进入管理页面
划红线部分,动动你可爱的小手就能看见密码拉,复制进去登录就行,有rabbitmq-management和rabbitmq两种界面哦,都是不一样的
三个rabbitmq都在哦
helm3取消了tiller,引进其他功能要方便很多
helm3官网
我的命令执行如下
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm search repo stable
helm repo update
D:\k8s\windows-amd64>helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈
安装kafka
D:\k8s\windows-amd64>helm install stable/kafka-manager --generate-name
NAME: kafka-manager-1571996561
LAST DEPLOYED: Fri Oct 25 17:42:43 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app=kafka-manager,release=kafka-manager-1571996561" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:9000
安装redis-ha集群
D:\k8s\windows-amd64>helm install stable/redis-ha --generate-name
NAME: redis-ha-1571996773
LAST DEPLOYED: Fri Oct 25 17:46:15 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Redis can be accessed via port 6379 and Sentinel can be accessed via port 26379 on the following DNS name from within your cluster:
redis-ha-1571996773.default.svc.cluster.local
To connect to your Redis server:
1. Run a Redis pod that you can use as a client:
kubectl exec -it redis-ha-1571996773-server-0 sh -n default
2. Connect using the Redis CLI:
redis-cli -h redis-ha-1571996773.default.svc.cluster.local
F:\windows-amd64>helm install my-release bitnami/kafka --namespace kafka
NAME: my-release
LAST DEPLOYED: Sat Oct 26 14:00:41 2019
NAMESPACE: kafka
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
Kafka can be accessed via port 9092 on the following DNS name from within your cluster:
my-release-kafka.kafka.svc.cluster.local
To create a topic run the following command:
export POD_NAME=$(kubectl get pods --namespace kafka -l "app.kubernetes.io/name=kafka,app.kubernetes.io/instance=my-release,app.kubernetes.io/component=kafka" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace kafka exec -it $POD_NAME -- kafka-topics.sh --create --zookeeper my-release-zookeeper:2181 --replication-factor 1 --partitions 1 --topic test
To list all the topics run the following command:
export POD_NAME=$(kubectl get pods --namespace kafka -l "app.kubernetes.io/name=kafka,app.kubernetes.io/instance=my-release,app.kubernetes.io/component=kafka" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace kafka exec -it $POD_NAME -- kafka-topics.sh --list --zookeeper my-release-zookeeper:2181
To start a kafka producer run the following command:
export POD_NAME=$(kubectl get pods --namespace kafka -l "app.kubernetes.io/name=kafka,app.kubernetes.io/instance=my-release,app.kubernetes.io/component=kafka" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace kafka exec -it $POD_NAME -- kafka-console-producer.sh --broker-list localhost:9092 --topic test
To start a kafka consumer run the following command:
export POD_NAME=$(kubectl get pods --namespace kafka -l "app.kubernetes.io/name=kafka,app.kubernetes.io/instance=my-release,app.kubernetes.io/component=kafka" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace kafka exec -it $POD_NAME -- kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
To connect to your Kafka server from outside the cluster execute the following commands:
kubectl port-forward --namespace kafka svc/my-release-kafka 9092:9092 &
echo "Kafka Broker Endpoint: 127.0.0.1:9092"
PRODUCER:
kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test
CONSUMER:
kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
又下载了bitnami家的kafka
更多推荐
所有评论(0)