Jenkins localhost handshaking failure with AWS k8s cluster, - amazon-web-services

I am using local setup of Jenkins
I have already running AWS k8s cluster
I tried with adding kubeconfig file confuguration in Jenkins credentials
But when I try it from Jenkins Test Connection it gives me following error
Then I tried to follow the steps mentioned in StackOverflow_Ticket, even that as well giving me UnknowHostException.
Any idea what is missing ?

Related

Bridge to Kubernetes failed to find services

I am trying to get Bridge to Kubernetes to work with my aws eks cluster. I have the command line kubectl cmds working and can communicate to my eks cluster in vscode via the Kubernetes extension. So I believe my .kube/config is correct. When I hit "Kubernetes: Debug (Local Tunnel)" -> I get an error:
Failed to configure Bridge to Kubernetes: Failed to find any services running in the namespace <correct_namespace> of cluster <correct_cluster>
What am I missing? Everything I've seen shows that bridge to Kubernetes should be able to connect. Is there an additional EKS security policy Bridge to Kubernetes requires to work?

request times out when pinging aws load balancer

I have a dockerized Node.JS express application that I am migrating to AWS from Google Cloud. I had done this before successfully on the same project before deciding Cloud Run was more cost effective because of their free tier. Now, wanting to switch back to Fargate, but am unable to do it again due what I'm guessing is a crucial step. For minimal setup, I used the following guide: https://docs.docker.com/cloud/ecs-integration/ Essentially, using docker compose up with aws context and project name to deploy to ECS and Fargate.
The Load Balancer gives me a public DNS name in the format: xxxxx.elb.us-west-2.amazonaws.com and I have defined a port of 5002 in my Docker container. I know the issue is not related to exposing port numbers or any code-related issue since I had this successfully running in Google Cloud Run. When I try to hit any of my express endpoints, by sending POST to xxxxx.elb.us-west-2.amazonaws.com:5002/my_endpoint, I end up with Error: Request Timed Out
Note: I have already verified that my inbound security rules have been set to all traffic.
I am very new to AWS, so would love guidance if I am missing a critical step.
Thanks!
EDIT (SOLUTION): Turns out everything was deploying correctly, but after checking CloudWatch Logs, it turns out Fargate can't read environment variables defined inside of docker-compose file. Instead, they need to be defined in .env files, then read in docker-compose through -env-file flag. My code was then trying to listen on a port that was in environment variable but was undefined, so was receiving the below error in CloudWatch.

AWS EKS - Unable to read logs for any container from cli

I have deployed an AWS EKS Cluster, and I was able to read logs from cli without any issues. After deploying an application, I started getting this error from the CLI.
while running the logs command, I was not getting any output. but after waiting for a while . I started getting this error:
logs command : kubectl logs "appname" -n "namespace"
error: Error from server: Get https://x.x.x.x:10250/containerLogs/"namespace"/"appname": dial tcp x.x.x.x:10250: i/o timeout
after editing the security group for the server (cli) which is running the EKS cluster, adding the specific PORTs . it started working .

Django with postgresql deployment on aws elastic beanstalk

I’ve been trying to deploy a django application with postgresql db on aws elastic beanstalk and i ran into many issues that i surfed and solved. Now the application uploads fine however the environment is still not green and I constantly am receiving 502 bad gateway nginx. I’ve checked nginx logs which say 111 connection refused etc. I’ve tried changed the port to 8001 from 8000 but didn’t work out. Somebody please guide me on how to deploy my application successfully.
Here are some of the common errors logfiles. Try checking them out
--- Common Dbug Errors ---
$ eb logs
--Files (after eb ssh):
$ eb ssh
1.sudo nano /var/log/cfn-init.log
2.sudo nano /var/log/cfn-init-cmd.log (see command output and error from config)
And are you using AWS RDS to for PostgreSQL?
Here is a detailed explanation and some common error fixes discuss in this blog

Cannot deploy using AWS code deploy : too few healthy instances are available for deployment

I am trying to deploy an application to an ec2 instace from s3 bucket . I created an instance with the required s3 permimssion and also a code deploy application with required ec2 permissions
When I try to deploy thought I get :
The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems. (Error code: HEALTH_CONSTRAINTS.
I shh into the ec2 instance to check the code deploy log and this is what I get in the :
2018-08-18 20:52:11 INFO [codedeploy-agent(2704)]: On Premises config file does not exist or not readable
2018-08-18 20:52:11 ERROR [codedeploy-agent(2704)]: booting child: error during start or run: Errno::ENETUNREACH - Network is unreachable - connect(2) - /usr/share/ruby/net/http.rb:878:in `initialize'
I tried changing the permissions , restarting the code deploy agent , creating a brand new codeDEploy application. Nothing seems to work.
In order for the agent to pick up commands from CodeDeploy, your host needs to have network access to the internet, which can be restricted by your EC2 security groups, VPC, configuration on your host, etc. To see if you have access, try pinging the CodeDeploy endpoint:
ping codedeploy.us-west-2.amazonaws.com
Though you should use the endpoint for the region your host is in - see here.
If you've configured the agent to use the proxy config, you may have to restart the agent like here.