Production Cluster Configuration

From WilliamsNet Wiki
Revision as of 00:09, 9 August 2019 by DrEdWilliams (talk | contribs)
Jump to navigation Jump to search

These packages form the basic functionality of the production cluster.

Scripts & config files are checked into gitlab under the Kubernetes group project listed.

activity gitlab script/procedures/config IP hostname(s)
BeeGFS Installation install the parallel filesystem components on controller & nodes to support the /shared filesystem
NGINX-ingress k8s-admin 10.0.0.111
GitLab gitlab 10.0.0.112 gitlab.williams.localnet
gitlab.williams-net.org
gitlab registry secrets gitlab-registry-kube-system.yaml
gitlab-registry-secret.yaml
Harbor Registry k8s-admin 10.0.0.115 harbor.williams.localnet
rsyslog rsyslog 10.0.0.113 rsyslog.williams.localnet
mail mail 10.0.0.114 mail.williams.localnet
wordpress (dredwilliams.com) dredwilliams dredwilliams.williams-net.org
mediawiki mediawiki 10.0.0.116 wiki.williams.localnet
wiki.williams-net.org

Storage

The production cluster depends on the /shared filesystem for its persistent storage. The BeeGFS components are installed as shown here:

component system location storage size
Management Server ramandu /home/beegfs-mgmtd local HD ~780G (shared)
Metadata Server ramaandu /home/beegfs-meta local HD ~780G (shared)
Storage Server ramandu /home/beegfs-data local HD ~780G (shared)

Systems that require access to both the development filesystem (/workspace) and the production filesystem (/shared) require a special client configuration.

Dashboard Token

Obtain the token needed to log into the dashboard with this command:

kubectl -n kube-system describe secrets \
   `kubectl -n kube-system get secrets | awk '/clusterrole-aggregation-controller/ {print $1}'` \
   | awk '/token:/ {print $2}'    

The current token for the Production cluster is:

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJjbHVzdGVycm9sZS1hZ2dyZWdhdGlvbi1jb250cm9sbGVyLXRva2VuLWs2MnFkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNsdXN0ZXJyb2xlLWFnZ3JlZ2F0aW9uLWNvbnRyb2xsZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwNDE2ZTdlYi0wYWZlLTQ2ZmYtOTY4NS02YzEwMmU1NTcxMjIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06Y2x1c3RlcnJvbGUtYWdncmVnYXRpb24tY29udHJvbGxlciJ9.Jv2EvhmCB3Qp_Lg8nyzDE69DhmSSk59Ewk0Xu0zROLMR0MFqOVQJCSBGQ4WV8VUi0Nq70txdO0vAFkSjo_0tcB_JA1-1615_lXLQ9RbNjIGr9AuquYjEV7GJ4yaBIhhDju7qRGTLjzB9lXlm7DrI73EduKE-PGiUq7y2oHGuSMUce8S2vh7LattV8Ud6hPbz_J9pNVqG9oXG4WVfn8-HoG19UDSgUyRj01h69mABzTcjPIWenAQnpqHYq-oMlvwHEUQ78I41YaKwI-9YBM2AP0ICSRrIcZY2GpoRmm90t9paBgLbESZYGXysJwzWSlJO3jwzQN9wpkCAnIbAV_TlzQ

Kubernetes Node Join Command

old production cluster with ramandu as controller

kubeadm join 10.0.0.9:6443 --token 81z3dx.aiy9j7nsdcizf3lz \
    --discovery-token-ca-cert-hash sha256:f5db5ecd247bed235c49675f01c5a1cccb793cd8a25db590f71b64a1d73fc5b6 \
    --ignore-preflight-errors Swap --node-name=`hostname -s`

new cluster with telmar as the controller:

kubeadm join 10.0.0.10:6443 --token hqxg8k.bcz5utygyd2sa4yn \
    --discovery-token-ca-cert-hash sha256:ec16325aa0d701961337bc15889e8a90dd1f2d37e08f47d6211d4d7b839b4eb3 \
    --ignore-preflight-errors Swap --node-name=`hostname -s`