Advertisement
Guest User

Untitled

a guest
Feb 28th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. # Create vsphere secret YAML:
  2. # tee ~/vsphere-secret.yaml >/dev/null <<EOF
  3. # apiVersion: v1
  4. # kind: Secret
  5. # metadata:
  6. # name: vsphere-secret
  7. # type: Opaque
  8. # data:
  9. # 192.168.23.224.username: a3ViZXJuZXRlc0BkZW1vdnNwaGVyZS5sb2NhbA==
  10. # 192.168.23.224.password: a3UjZGFCZXJuZXRlITY=
  11. # EOF
  12.  
  13.  
  14. # Maybe use secrets
  15. # secret-name = "vsphere-secret"
  16. # secret-namespace = "kube-system"
  17. # Create vsphere.conf on MASTER NODE
  18. tee /etc/kubernetes/vsphere.conf >/dev/null <<EOF
  19. [Global]
  20. user = "kubernetes@demovsphere.local"
  21. password = "ku#daBernete!6"
  22. port = "443"
  23. insecure-flag = "1"
  24. datacenters = "DemoRegra"
  25.  
  26. [VirtualCenter "192.168.23.224"]
  27.  
  28. [Workspace]
  29. server = "192.168.23.224"
  30. datacenter = "DemoRegra"
  31. default-datastore="kubernetes"
  32. datacenter = "DemoRegra"
  33. folder = "/DemoRegra/vm/Kubernetes/"
  34.  
  35. [Disk]
  36. scsicontrollertype = pvscsi
  37. EOF
  38.  
  39. # Creates kubeadm init config
  40. tee ./kubeadm-init-config.yaml >/dev/null <<EOF
  41. apiVersion: kubeadm.k8s.io/v1alpha2
  42. kind: InitConfiguration
  43. kubernetesVersion: v1.11.7
  44. nodeRegistration:
  45. kubeletExtraArgs:
  46. cloud-provider: "vsphere"
  47. cloud-config: "/etc/kubernetes/vsphere.conf"
  48. ---
  49. apiVersion: kubeadm.k8s.io/v1alpha2
  50. kind: ClusterConfiguration
  51. kubernetesVersion: v1.11.7
  52. apiServer:
  53. extraArgs:
  54. cloud-provider: "vsphere"
  55. cloud-config: "/etc/kubernetes/vsphere.conf"
  56. extraVolumes:
  57. - name: cloud
  58. hostPath: "/etc/kubernetes/vsphere.conf"
  59. mountPath: "/etc/kubernetes/vsphere.conf"
  60. controllerManager:
  61. extraArgs:
  62. cloud-provider: "vsphere"
  63. cloud-config: "/etc/kubernetes/vsphere.conf"
  64. extraVolumes:
  65. - name: cloud
  66. hostPath: "/etc/kubernetes/vsphere.conf"
  67. mountPath: "/etc/kubernetes/vsphere.conf"
  68. networking:
  69. dnsDomain: regra.pt
  70. podSubnet: "10.244.0.0/16"
  71. serviceSubnet: 10.96.0.0/12
  72. EOF
  73.  
  74. kubeadm init --config=./kubeadm-init-config.yaml --ignore-preflight-errors=SystemVerification
  75.  
  76.  
  77. # Create kubeadm join config:
  78. tee ~/kubeadm-init-worker.yaml >/dev/null <<EOF
  79. apiVersion: kubeadm.k8s.io/v1alpha3
  80. kind: JoinConfiguration
  81. nodeRegistration:
  82. kubeletExtraArgs:
  83. cloud-provider: vsphere
  84. EOF
  85.  
  86. # Create secret
  87. # kubectl create -f vsphere-secret.yaml --namespace=kube-system
  88.  
  89. # Reload kubelet systemd
  90. systemctl daemon-reload
  91.  
  92. # Restart kubelet
  93. systemctl restart kubelet
  94.  
  95. # If controller-Manager is running in the container, restart controller-Manager container.
  96. # If controller-Manager is running as service, restart service for controller-Manager.
  97. docker ps | grep controller
  98. docker stop containerid
  99.  
  100. # If API server is running in the container, restart API container
  101. # If API server is running as service, restart service for API server.
  102. docker ps | grep apiserver
  103. docker stop containerid
  104.  
  105.  
  106. # Check nodes mapping to vsphere
  107. kubectl describe nodes | grep "ProviderID"
  108.  
  109. # Create Storage Class YAML
  110. tee vsan-storage-class.yaml >/dev/null <<EOF
  111. kind: StorageClass
  112. apiVersion: storage.k8s.io/v1
  113. metadata:
  114. name: vsan-default
  115. annotations:
  116. storageclass.kubernetes.io/is-default-class: "true"
  117. provisioner: kubernetes.io/vsphere-volume
  118. parameters:
  119. storagePolicyName: "vSAN Default Storage Policy"
  120. datastore: kubernetes
  121. EOF
  122.  
  123. # Create Storage Class
  124. kubectl create -f vsan-storage-class.yaml
  125.  
  126. tee pvc-exception.yaml >/dev/null <<EOF
  127. kind: PersistentVolumeClaim
  128. apiVersion: v1
  129. metadata:
  130. name: exception-vsan
  131. annotations:
  132. volume.beta.kubernetes.io/storage-class: vsan-default
  133. spec:
  134. accessModes:
  135. - ReadWriteMany
  136. resources:
  137. requests:
  138. storage: 5Gi
  139. EOF
  140.  
  141. kubectl create -f pvc-exception.yaml
  142.  
  143. # Test Pod Creation with Persistent Volume
  144. tee pvc-exception.yaml >/dev/null <<EOF
  145. apiVersion: v1
  146. kind: Pod
  147. metadata:
  148. name: test-volumne
  149. spec:
  150. containers:
  151. - name: test-volumne
  152. image: k8s.gcr.io/test-webserver
  153. volumeMounts:
  154. - name: exception-volume
  155. mountPath: /test
  156. volumes:
  157. - name: exception-volume
  158. persistentVolumeClaim:
  159. claimName: exception-vsan
  160. EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement