githubfoam / k8s-terraform-docker-remote-sandbox

k8s terraform docker
GNU General Public License v3.0
0 stars 0 forks source link
docker k8s terraform

kubernetes terraform docker runtimes sandbox

cross platform(freebsd,lin,win,mac..etc)


vagrant global-status
id       name            provider   state    directory
-----------------------------------------------------------------------------------------------------------
c34c93c  k8s-master01    virtualbox running  C:/multimachine/kubernetes-sandbox-remote
adb4ffe  worker01        virtualbox running  C:/multimachine/kubernetes-sandbox-remote
2e21187  worker02        virtualbox running  C:/multimachine/kubernetes-sandbox-remote
b39b49d  remotecontrol01 virtualbox running  C:/multimachine/kubernetes-sandbox-remote

vagrant ssh remotecontrol01

vagrant@remotecontrol01:~$ sudo ansible-playbook -i /vagrant/kube-cluster/hosts /vagrant/kube-cluster/initial.yml

vagrant@remotecontrol01:~$ sudo ansible-playbook -i /vagrant/kube-cluster/hosts /vagrant/kube-cluster/kube-dependencies.yml

vagrant@remotecontrol01:~$ sudo ansible-playbook -i /vagrant/kube-cluster/hosts /vagrant/kube-cluster/masters.yml  

[vagrant@remotecontrol01 ~]$ sudo ansible-inventory --inventory-file=/vagrant/kube-cluster/hosts --graph
@all:
  |--@masters:
  |  |--k8s-master01
  |--@ungrouped:
  |--@workers:
  |  |--worker01
  |  |--worker02
vagrant@k8s-master:~$ apt-cache madison docker-ce
 docker-ce | 5:19.03.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:19.03.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.8~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.7~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.6~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.5~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.4~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.3~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.2~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages

 vagrant@k8s-master:~$ apt-cache madison kubelet
    kubelet |  1.15.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
    kubelet |  1.15.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
    kubelet |  1.15.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
    kubelet |  1.14.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
    kubelet |  1.14.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
    kubelet |  1.14.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
[vagrant@remotecontrol01 ~]$ sudo ansible-inventory --inventory-file=/vagrant/kube-cluster/hosts --graph
@all:
  |--@masters:
  |  |--k8s-master01
  |--@ungrouped:
  |--@workers:
  |  |--worker01
  |  |--worker02

vagrant@k8s-master01:~$ kubectl get nodes
NAME           STATUS   ROLES    AGE   VERSION
k8s-master01   Ready    master   14m   v1.15.2
worker01       Ready    <none>   11m   v1.15.2
worker02       Ready    <none>   11m   v1.15.2

[vagrant@remotecontrol01 ~]$ sudo ansible -i /vagrant/kube-cluster/hosts k8s-master01 -m shell -a "kubectl get pods --all-namespaces"
k8s-master01 | CHANGED | rc=0 >>
NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-5c98db65d4-6qsrl               1/1     Running   0          12m
kube-system   coredns-5c98db65d4-ldzj8               1/1     Running   0          12m
kube-system   etcd-k8s-master01                      1/1     Running   0          12m
kube-system   kube-apiserver-k8s-master01            1/1     Running   0          12m
kube-system   kube-controller-manager-k8s-master01   1/1     Running   0          12m
kube-system   kube-flannel-ds-amd64-7jv62            1/1     Running   0          6m48s
kube-system   kube-flannel-ds-amd64-j7xsf            1/1     Running   0          12m
kube-system   kube-flannel-ds-amd64-jhqlz            1/1     Running   0          6m41s
kube-system   kube-proxy-4gq2g                       1/1     Running   0          6m41s
kube-system   kube-proxy-nfn7s                       1/1     Running   0          6m48s
kube-system   kube-proxy-ng2bc                       1/1     Running   0          12m
kube-system   kube-scheduler-k8s-master01            1/1     Running   0          12m

[vagrant@remotecontrol01 ~]$ sudo ansible -i /vagrant/kube-cluster/hosts k8s-master01 -m shell -a "wget -q -nc https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip"
 [WARNING]: Consider using the get_url or uri module rather than running 'wget'.  If you need to use command because get_url or uri is insufficient you can add 'warn: false' to this command task or set
'command_warnings=False' in ansible.cfg to get rid of this message.

k8s-master01 | CHANGED | rc=0 >>

[vagrant@remotecontrol01 ~]$ sudo ansible -i /vagrant/kube-cluster/hosts k8s-master01 -m shell -a "unzip terraform_0.12.6_linux_amd64.zip"                 . 6/terraform_0.12.6_linux_amd64.zip"
 [WARNING]: Consider using the unarchive module rather than running 'unzip'.  If you need to use command because unarchive is insufficient you can add 'warn: false' to this command task or set
'command_warnings=False' in ansible.cfg to get rid of this message.

k8s-master01 | CHANGED | rc=0 >>
Archive:  terraform_0.12.6_linux_amd64.zip
  inflating: terraform

[vagrant@remotecontrol01 ~]$ sudo ansible -i /vagrant/kube-cluster/hosts k8s-master01 -m shell -a "sudo mv terraform /usr/local/bin/"                       .6/terraform_0.12.6_linux_amd64.zip"
 [WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo

k8s-master01 | CHANGED | rc=0 >>

[vagrant@remotecontrol01 ~]$ sudo ansible -i /vagrant/kube-cluster/hosts k8s-master01 -m shell -a "terraform version"                                       .6/terraform_0.12.6_linux_amd64.zip"
k8s-master01 | CHANGED | rc=0 >>
Terraform v0.12.6

deploy hola mundo

vagrant@k8s-master01:~$ pwd
/home/vagrant
vagrant@k8s-master01:~$ cp -r /vagrant/holamundo_app/ .

vagrant@k8s-master01:~/$ terraform destroy -auto-approve
vagrant@k8s-master01:~/$ terraform init
vagrant@k8s-master01:~/$ terraform plan -out holamundo.tfplan
vagrant@k8s-master01:~/$ terraform apply holamundo.tfplan
vagrant@k8s-master01:~/$ terraform show

vagrant@k8s-master01:~/$ kubectl get pods
NAME           READY   STATUS    RESTARTS   AGE
echo-example   1/1     Running   0          4m19s

vagrant@k8s-master01:~/$ kubectl get services
NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
echo-example   ClusterIP   10.105.53.235   <none>        80/TCP    4m41s
kubernetes     ClusterIP   10.96.0.1       <none>        443/TCP   59m

vagrant@k8s-master01:~/$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
default       echo-example                           1/1     Running   0          5m10s
kube-system   coredns-5c98db65d4-6qsrl               1/1     Running   0          59m
kube-system   coredns-5c98db65d4-ldzj8               1/1     Running   0          59m
kube-system   etcd-k8s-master01                      1/1     Running   0          58m
kube-system   kube-apiserver-k8s-master01            1/1     Running   0          58m
kube-system   kube-controller-manager-k8s-master01   1/1     Running   0          59m
kube-system   kube-flannel-ds-amd64-7jv62            1/1     Running   0          53m
kube-system   kube-flannel-ds-amd64-j7xsf            1/1     Running   0          59m
kube-system   kube-flannel-ds-amd64-jhqlz            1/1     Running   0          53m
kube-system   kube-proxy-4gq2g                       1/1     Running   0          53m
kube-system   kube-proxy-nfn7s                       1/1     Running   0          53m
kube-system   kube-proxy-ng2bc                       1/1     Running   0          59m
kube-system   kube-scheduler-k8s-master01            1/1     Running   0          59m

deploy nginx

vagrant@k8s-master01:~$ pwd
/home/vagrant
vagrant@k8s-master01:~$ cp -r /vagrant/nginx_app/ .

vagrant@k8s-master01:~/$ terraform destroy -auto-approve
vagrant@k8s-master01:~/$ terraform init
vagrant@k8s-master01:~/$ terraform plan -out nginx.tfplan
vagrant@k8s-master01:~/$ terraform apply nginx.tfplan
vagrant@k8s-master01:~/$ terraform show

vagrant@k8s-master01:~/nginx_app$ kubectl get pods
NAME            READY   STATUS    RESTARTS   AGE
nginx-example   1/1     Running   0          63s
vagrant@k8s-master01:~/nginx_app$ kubectl get services
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes      ClusterIP   10.96.0.1       <none>        443/TCP   67m
nginx-example   ClusterIP   10.105.164.28   <none>        80/TCP    38s

vagrant@k8s-master01:~/nginx_app$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
default       nginx-example                          1/1     Running   0          4m
kube-system   coredns-5c98db65d4-6qsrl               1/1     Running   0          69m
kube-system   coredns-5c98db65d4-ldzj8               1/1     Running   0          69m
kube-system   etcd-k8s-master01                      1/1     Running   0          69m
kube-system   kube-apiserver-k8s-master01            1/1     Running   0          69m
kube-system   kube-controller-manager-k8s-master01   1/1     Running   0          69m
kube-system   kube-flannel-ds-amd64-7jv62            1/1     Running   0          63m
kube-system   kube-flannel-ds-amd64-j7xsf            1/1     Running   0          69m
kube-system   kube-flannel-ds-amd64-jhqlz            1/1     Running   0          63m
kube-system   kube-proxy-4gq2g                       1/1     Running   0          63m
kube-system   kube-proxy-nfn7s                       1/1     Running   0          63m
kube-system   kube-proxy-ng2bc                       1/1     Running   0          69m
kube-system   kube-scheduler-k8s-master01            1/1     Running   0          69m

vagrant@k8s-master01:~/nginx_app$ terraform destroy -auto-approve
kubernetes_pod.nginx: Refreshing state... [id=default/nginx-example]
kubernetes_service.nginx: Refreshing state... [id=default/nginx-example]
kubernetes_service.nginx: Destroying... [id=default/nginx-example]
kubernetes_service.nginx: Destruction complete after 0s
kubernetes_pod.nginx: Destroying... [id=default/nginx-example]

kubernetes_pod.nginx: Still destroying... [id=default/nginx-example, 10s elapsed]
kubernetes_pod.nginx: Destruction complete after 17s

Destroy complete! Resources: 2 destroyed.

vagrant@k8s-master01:~/nginx_app$ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   74m

vagrant@k8s-master01:~/nginx_app$ kubectl get pods
No resources found.

vagrant shared folder issue

$ sudo terraform destroy -auto-approve
kubernetes_pod.nginx: Refreshing state... [id=default/nginx-example]
kubernetes_service.nginx: Refreshing state... [id=default/nginx-example]

Error: fork/exec /vagrant/.terraform/plugins/linux_amd64/terraform-provider-kubernetes_v1.8.1_x4: permission denied

$ sudo lsof | grep terraform
terraform  7114  7115 terraform            root  txt       REG               0,49  47478528        188 /vagrant/app1/.terraform/plugins/linux_amd64/terraform-provider-kubernetes_v1.8.1_x4
$ sudo kill -9 711
v1.15 Release Notes
The list of validated docker versions remains unchanged.
The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. (#72823, #72831)
https://kubernetes.io/docs/setup/release/notes/

Container runtimes
On each of your machines, install Docker. Version 18.06.2 is recommended, but 1.11, 1.12, 1.13, 17.03 and 18.09 are known to work as well. Keep track of the latest verified Docker version in the Kubernetes release notes.
https://kubernetes.io/docs/setup/production-environment/container-runtimes/

[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/