失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > KubernetesDatabase-k8s中helm方式安装postgresql及pgadmin

KubernetesDatabase-k8s中helm方式安装postgresql及pgadmin

时间:2019-03-23 08:46:38

相关推荐

KubernetesDatabase-k8s中helm方式安装postgresql及pgadmin

Kubernetes&Database-k8s中helm方式安装postgresql及pgadmin

安装 helm安装postgresql安装pgadmin

安装 helm

这里使用脚本的方式安装

#curl /helm/helm/master/scripts/get > get_helm.sh% Total % Received % Xferd Average Speed Time TimeTime CurrentDload Upload Total Spent Left Speed100 7160 100 7160 00 80350 --:--:-- --:--:-- --:--:-- 8026#chmod 700 get_helm.sh

#./get_helm.shDownloading https://get.helm.sh/helm-v2.16.10-darwin-amd64.tar.gzPreparing to install helm and tiller into /usr/local/binPassword:helm installed into /usr/local/bin/helmtiller installed into /usr/local/bin/tillerRun 'helm init' to configure helm.

Tiller服务器运行在Kubernetes集群中,它会处理Helm客户端的请求,与Kubernetes API Server交互。

安装tiller服务:

#helm init --upgrade --tiller-image -/google_containers/tiller:v2.16.10 --stable-repo-url https://kubernetes.oss-cn-/chartsCreating /Users/bytedance/.helmCreating /Users/bytedance/.helm/repositoryCreating /Users/bytedance/.helm/repository/cacheCreating /Users/bytedance/.helm/repository/localCreating /Users/bytedance/.helm/pluginsCreating /Users/bytedance/.helm/startersCreating /Users/bytedance/.helm/cache/archiveCreating /Users/bytedance/.helm/repository/repositories.yamlAdding stable repo with URL: https://kubernetes.oss-cn-/chartsAdding local repo with URL: http://127.0.0.1:8879/charts$HELM_HOME has been configured at /Users/bytedance/.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://v2.helm.sh/docs/securing_installation/

tiller授权:

# kubectl create serviceaccount --namespace kube-system tillerserviceaccount/tiller created# kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tillerclusterrolebinding.rbac.authorization.k8s.io/tiller-cluster-rule created# kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'deployment.apps/tiller-deploy patched查看授权情况:# kubectl get deploy -n kube-system tiller-deploy -o yaml | grep serviceAccountserviceAccount: tillerserviceAccountName: tiller查看是否安装成功:#kubectl -n kube-system get pods|grep tillertiller-deploy-648df857bb-224ph 1/1Running 013m# helm versionClient: &version.Version{SemVer:"v2.16.10", GitCommit:"bceca24a91639f045f22ab0f41e47589a932cf5e", GitTreeState:"clean"}Server: &version.Version{SemVer:"v2.16.10", GitCommit:"bceca24a91639f045f22ab0f41e47589a932cf5e", GitTreeState:"clean"}

安装postgresql

这里是单机模式

参考:https://hub.helm.sh/charts/bitnami/postgresql(建议看下内容,根据需要修改相关参数,这里为默认配置)

# helm repo add bitnami /bitnami# helm install bitnami/postgresql --version 9.2.1查看:# helm listNAME REVISIONUPDATED STATUS CHART APP VERSIONNAMESPACEhardy-termite1 Thu Aug 20 14:20:00 DEPLOYEDpostgresql-9.2.111.9.0default查看状态:# helm status hardy-termiteLAST DEPLOYED: Thu Aug 20 14:20:00 NAMESPACE: defaultSTATUS: DEPLOYEDRESOURCES:==> v1/Pod(related)NAME READY STATUS RESTARTS AGEhardy-termite-postgresql-0 1/1 Running 0 16m==> v1/SecretNAME TYPE DATA AGEhardy-termite-postgresql Opaque 116m==> v1/ServiceNAME TYPE CLUSTER-IPEXTERNAL-IP PORT(S) AGEhardy-termite-postgresql ClusterIP 10.104.189.33 <none> 5432/TCP 16mhardy-termite-postgresql-headless ClusterIP None <none> 5432/TCP 16m==> v1/StatefulSetNAME READY AGEhardy-termite-postgresql 1/1 16mNOTES:** Please be patient while the chart is being deployed **PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster:hardy-termite-postgresql.default.svc.cluster.local - Read/Write connectionTo get the password for "postgres" run:export POSTGRES_PASSWORD=$(kubectl get secret --namespace default hardy-termite-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)To connect to your database run the following command:kubectl run hardy-termite-postgresql-client --rm --tty -i --restart='Never' --namespace default --image docker.io/bitnami/postgresql:11.9.0-debian-10-r0 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host hardy-termite-postgresql -U postgres -d postgres -p 5432To connect to your database from outside the cluster execute the following commands:kubectl port-forward --namespace default svc/hardy-termite-postgresql 5432:5432 &PGPASSWORD="$POSTGRES_PASSWORD" psql --host 127.0.0.1 -U postgres -d postgres -p 5432按照以上提示:获取passwd定义为环境变量# export POSTGRES_PASSWORD=$(kubectl get secret --namespace default hardy-termite-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)连接数据库:# kubectl run hardy-termite-postgresql-client --rm --tty -i --restart='Never' --namespace default --image docker.io/bitnami/postgresql:11.9.0-debian-10-r0 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host hardy-termite-postgresql -U postgres -d postgres -p 5432If you don't see a command prompt, try pressing enter.postgres=#postgres=#

安装pgadmin

# helm repo add runix /# helm install --name my-release runix/pgadmin4查看状态:# helm status my-releaseLAST DEPLOYED: Thu Aug 20 14:58:22 NAMESPACE: defaultSTATUS: DEPLOYEDRESOURCES:==> v1/DeploymentNAME READY UP-TO-DATE AVAILABLE AGEmy-release-pgadmin4 0/1 1 050s==> v1/NetworkPolicyNAME POD-SELECTOR AGEmy-release-pgadmin4 app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pgadmin4 50s==> v1/PersistentVolumeClaimNAME STATUS VOLUMECAPACITY ACCESS MODES STORAGECLASS AGEmy-release-pgadmin4 Bound pvc-8e990ec4-eab0-4d96-96d4-c18875f6ee88 10GiRWO hostpath50s==> v1/Pod(related)NAME READY STATUS RESTARTS AGEmy-release-pgadmin4-85b5c9647b-79wsv 0/1 Running 0 50s==> v1/SecretNAME TYPE DATA AGEmy-release-pgadmin4 Opaque 150s==> v1/ServiceNAME TYPE CLUSTER-IPEXTERNAL-IP PORT(S) AGEmy-release-pgadmin4 ClusterIP 10.108.86.177 <none> 80/TCP 50sNOTES:1. Get the application URL by running these commands:export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=pgadmin4,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}")echo "Visit http://127.0.0.1:8080 to use your application"kubectl port-forward $POD_NAME 8080:80按照提示转发端口到8080:# kubectl port-forward $POD_NAME 8080:80Forwarding from 127.0.0.1:8080 -> 80Forwarding from [::1]:8080 -> 80Handling connection for 8080。。。。。。。。。。。。输出略

web登陆127.0.0.1:8080,此处的邮箱和密码可参考

/rowanruseler/helm-charts/tree/master/charts/pgadmin4中默认的字段:

连接之前创建的pg数据库:

查看svc hardy-termite-postgresql :

# kubectl get svcNAME TYPE CLUSTER-IPEXTERNAL-IP PORT(S) AGEhardy-termite-postgresql ClusterIP 10.104.189.33 <none> 5432/TCP 55mhardy-termite-postgresql-headless ClusterIP None <none> 5432/TCP 55mkubernetesClusterIP 10.96.0.1 <none> 443/TCP 16dmy-release-pgadmin4 ClusterIP 10.108.86.177 <none> 80/TCP17mnginx-dns ClusterIP 10.97.238.255 <none> 80/TCP11d查看pg的密码:kubectl get secret --namespace default hardy-termite-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode6FyHqQXN0U%

连接配置如下:

如果觉得《KubernetesDatabase-k8s中helm方式安装postgresql及pgadmin》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。