scholzj / aws-k8s-kops-ansible

Kubernetes setup on Amazon AWS using Kops and Ansible
Apache License 2.0
105 stars 207 forks source link

SDN Integrations #16

Open coolpalani opened 6 years ago

coolpalani commented 6 years ago

Hello,

I am trying to integrate Contrail SDN solution with Kubernetes. so while provision kubernetes cluster using your repo, I need to provision contrail node also using this yml file. https://raw.githubusercontent.com/savithruml/opencontrail/master/kubernetes/roles/master/templates/contrail-installer.j2

kubectl apply -f /tmp/contrail-installer.yml

I don't want use kubernetes internal dns solutions (kube-dns).

Could you assist me how do i achieve this integrations. Where I have to skip kube-dns part while i provision kubernetes using your repo.

Thanks in advance.

scholzj commented 6 years ago

To be honest, I have no experience with Contrail. I'm also not sure how much is Kops suitable for such task since it doesn't always allow you to configure such a low level details. Normally Kops will install some other SDN (Weave, Calico, etc.). So you would probably need to remove these. But for example Calico is usually running just as any other Kubrnetes deployment. So you should be abel to easily delete it. The same should apply to kube-dns. Would it be ok for you if they are first installed and only removed afterwards?

When I have some time (and that might not be in the next few days) I can have a look and try to help with removing them after they are installed. But the rest ot the way - with contrail - you will probably need to do your self.

coolpalani commented 6 years ago

Thanks for the update. Let I figure out this integrations and update you once completed.

scholzj commented 6 years ago

I looked a bit more into deploying without network and DNS. I didnt found any way how to do it. But once the cluster is set up, it seems to be possible to delete Calico network (all deployments with Calico in name + DaemonSet) and KubeDNS (all deployments with kube-dns in their name) simply using kubectl or through the Kubernetes Dashboard. All are in kube-system namespace. hope this helps you.

coolpalani commented 6 years ago

I had tried to deploy Kubernetes cluster with Contrail using this below repo.

https://github.com/gokulpch/Contrail_Kubernetes_AWS_Ansible-Boto

They had explained as clear crystal. If you have some time look into that repo. I hope It will be great explore to you also. In order to make K8s as reliable solutions, we need SDN (It may be flannel,contrail,calico etc). Based on my research, Opencontrail would be best SDN solutions for K8s https://image.slidesharecdn.com/kubernetessdnperformanceandarchitecture1-161214085352/95/kubernetes-sdn-performance-and-architecture-25-638.jpg?cb=1481705741

But again it's depends on your use cases and scenario. We can even extend this Contrail solutions to Physical machines, OpenStack etc.

scholzj commented 6 years ago

I think the Ansible scripts you linked do a complete Kubernetes setup including the hosts etc. That cannot be really combined with the Kops based deployment. The easiest way to include it would be if they have a YAML deployment similar to the other SDNs.

Kops support plenty of SDN solutions - calico, weave, flannel, etc. I'm in particular interested to try the Amazon one once it is released. I'm not sure what are the advantages of implementing Contrail in addition to these. But the easiest way might be to do it directly in Kops.