microservices-patterns / ftgo-application

Example code for the book Microservice patterns
Other
3.35k stars 1.29k forks source link

Trying to deploy Kubernetes on Windows. Getting Error. The branch - wip-use-gradle-docker-compose #92

Open prakashid2 opened 4 years ago

prakashid2 commented 4 years ago

I'm trying to deploy on Kubernetes. Command I tried.

deployment\kubernetes\scripts\kubernetes-deploy-all.sh

Encountering some error. Screenshot attached. Any idea how to overcome this? Also let me know how can I test whether deployment succeeded or failed.

Thanks Prakash S.

ErrorInDeployingOnKubernetes

prakashid2 commented 4 years ago

Hey Chris. Any idea about this issue? Thanks Prakash S.

cer commented 4 years ago

It would be helpful if you described your Kubernetes environment. Also, have you successfully deployed on Kubernetes before.

cer commented 4 years ago

As before, you need to look at the deployment script and incrementally deploy services and see what works/doesn't work.

  1. kubectl apply -f deployment/kubernetes/stateful-services/ftgo-db-secret.yml
  2. kubectl apply -f deployment/kubernetes/stateful-services/ftgo-mysql-deployment.yml

What's the output of kubectl get po --watch?

prakashid2 commented 4 years ago

Chris.

This is the first time I'm deploying any app on Kubernetes. I'm trying to run ftgo-application on my PC with docker toolbox installed and kubectl.exe in Path environment variable.

-- output of kubectl apply command -- D:\intelliJWorkspaces\manningWorkspace\wip-use-gradle-docker-compose-Branch\ftgo-application>kubectl apply -f deployment\kubernetes\stateful-services\ ftgo-db-secret.yml error: unable to recognize "deployment\kubernetes\stateful-services\ftgo-db-secret.yml": no matches for kind "Secret" in version "v1"

D:\intelliJWorkspaces\manningWorkspace\wip-use-gradle-docker-compose-Branch\ftgo-application>kubectl apply -f deployment\kubernetes\stateful-services\ ftgo-mysql-deployment.yml unable to recognize "deployment\kubernetes\stateful-services\ftgo-mysql-deployment.yml": no matches for kind "Service" in version "v1" unable to recognize "deployment\kubernetes\stateful-services\ftgo-mysql-deployment.yml": no matches for kind "StatefulSet" in version "apps/v1beta1 "

D:\intelliJWorkspaces\manningWorkspace\wip-use-gradle-docker-compose-Branch\ftgo-application>kubectl get po --watch error: the server doesn't have a resource type "po"


I also have AWS free tier account. Please let me know if I have to try on AWS CLI or on my PC. Which is better?

Thanks Prakash S.

cer commented 4 years ago

I would first deploy a simple example on your k8s - not sure what would cause error's such as "no matches for kind "Secret" in version "v1""

BTW You still haven't told me anything about your K8s setup except that you hint that it is running on AWS.

cer commented 4 years ago

I've push a commit to the master branch that partially fixes the k8s deployment. Once you have debugged your K8s environment, you can run the these commands:

kubectl apply -f deployment/kubernetes/stateful-services
kubectl apply -f deployment/kubernetes/cdc-service
kubectl apply -f ftgo-consumer-service/src/deployment/kubernetes/ftgo-consumer-service.yml

Once the pods are ready as shown by '1/1' in the output of kubectl get po you can then run

kubectl port-forward ftgo-consumer-service-8080:8080

This makes the Swagger UI available on http://localhost:8080/swagger-ui.html for the consumer service.

I'll update the other services shortly.

prakashid2 commented 4 years ago

Chris.

I said I've AWS free tier account but I'm trying to run Kubernetes on my PC and not on EC2. There is no special environment on my PC for Kubernetes except the kubectl.exe. I haven't tried any application deploying on Kubernetes. But I'll try if you suggest a simpler one.

Thanks Prakash S.

cer commented 4 years ago

But there is more to K8s than just kubectl.exe - that's just the command line application. How did you install the rest of it?

prakashid2 commented 4 years ago

Uhh. That means I'm missing the installation. Actually my Power Shell is unable to install hence following two commands for K8s installation not complete.


Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation ]


Giving some error Install-Script : The term 'Install-Script' is not recognized as the name of a cmdlet, function, script file, or operable program


Some google pointers say that not all commands are available to a version of Windows Power Shell. I'll sort this issue first and then try Kubernetes part. I overlooked the above commands necessary to be executed. Sorry for this.

Thanks Prakash S.