Production Cluster Configuration

From WilliamsNet Wiki
Revision as of 23:28, 7 August 2019 by DrEdWilliams (talk | contribs)
Jump to navigation Jump to search

These packages form the basic functionality of the production cluster. The packages need to be installed in this order to preserve the IP address assignments. If the order is changed (or one is left out) you may need to review and modify IP assignments in the DNS server on the firewall.

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
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
Harbor Registry k8s-admin 10.0.0.115 harbor.williams.localnet
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

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`