Reddit DevOps
278 subscribers
69 photos
32.2K links
Reddit DevOps. #devops
Thanks @reddit2telegram and @r_channels
Download Telegram
Cloud-Native Logging And Monitoring Pattern

**Folks,**

Since the early ages of mainframes and punch-card programming, there have always been gauges for monitoring the system’s temperature and power among other things.

Here is This week Article [Cloud-Native Logging And Monitoring Pattern](https://www.magalix.com/blog/cloud-native-logging-and-monitoring-pattern).

**What's inside:**

* The Need For Observability in The Cloud-Native World.
* Cloud-Native Logging/Kubernetes Logging.
* Cloud-Native Metrics.
* The Pull-Based Method/The Push-Based Method.

[https://www.magalix.com/blog/cloud-native-logging-and-monitoring-pattern](https://www.magalix.com/blog/cloud-native-logging-and-monitoring-pattern)

https://redd.it/ef2jty
@r_devops
Need some experienced devs / hackers


Hey guys, I’m looking for some very experienced devs / hackers to work on a project with serious money within it, drop me a message if you want work on it

https://redd.it/eejxsj
@r_devops
GDPR for operating systems

As I value privacy a lot along with respect the GDPR law, why are operating systems not complying to this law? When I log into a linux server, the first thing it says is: `Last login: ... <ip-address>`. It actually keeps track of my ip address. I actually never took time to further investigate what it does with your IP address, but assume the server got hacked, there is sensitive login information from all the devs who logged in to the server.

Why is this law not respected by operating systems? Is it necessary to do so?

https://redd.it/eedwv4
@r_devops
When should you use Terraform over provider API?

If a service has an API and is also a Terraform provider, how do you determine which to use? If you already built python classes and toolkits that utilizes the API, should you migrate to Terraform?

https://redd.it/edcbq9
@r_devops
Where to host for eastern Europe and China

Hi everyone, I'm a dev ops engineer in the US with experience in mainly GCP and some aws. I'm relatively new to things like site speed but I'm learning about latency and how optimizing for regions in the US is important.

I'm working on a project that would be primarily servicing eastern Europe and China. I see hosting in China is possible on GCP and aws but I can't seem to find a cloud platform in eastern Europe. Anyone able to point me in the right direction?

https://redd.it/edbs59
@r_devops
Database schema changes

I'm current working with the LAMP stack and extrapolating everything into microservices and implementing immutable infrastructure. The one issue I'm having conceptually is how to manage database schema changes via atomic / immutable infrastructure.


Currently our websites will experience downtime when updating the software where database schema changes occur and I was hoping to get some advice on how to avoid this using containerisation.

Thanks

https://redd.it/edbdjz
@r_devops
Is this a devops role? What should I be learning?

Hi everyone, I'm starting an internship in a few weeks and I'm trying to study some concepts in advance so I won't be completely lost when I start. The responsibilities seem to be related to what a devops position would have, but it's on the "Tools" team and I'm not sure of what I should be learning before I start. Some of the job responsibilities on the description are:

- Create internal tooling frameworks that help teams simplify environment management and monitoring.

- Utilize CI/CD and other tools to help other engineers to self-service day to day operations.

- Explore image & container-based build, testing, and deployment strategies.

- Investigate new ways to automate deployments, canary analysis, and rollbacks.

I'm a complete beginner to all of these concepts with no experience regarding CI/CD pipelines, containers, and automation deployments. Currently I'm thinking about starting this [devops learning path on Linux Academy] (https://linuxacademy.com/learning-path/junior-devops-engineer-entry-level/) but skipping the Linux Foundation course because that seems less relevant. Is that a good idea? If not, any suggestions on better places I could get started would be greatly appreciated.

Merry Christmas!

https://redd.it/efct7w
@r_devops
Intro to Salt Stack Article

Since my Kubernetes article was perceived as helpful and well received, I thought I would share my Intro to Salt Stack. It's a multi article series on my journey to learning Salt Stack. I have learned quite a bit from this subreddit and wanted to share back.

I know we have some seasoned devops in here but also aspiring devops and those wanting to get a taste of it. You can easily follow the article to setup a lab.

Tell me what you think. Downvote if it is not useful but tell me why you downvoted if you do. I want to start a conversation even if its constructive criticism! :-)

https://blog.woohoosvcs.com/2019/11/introduction-to-saltstack/

https://redd.it/edargq
@r_devops
Automated test tool to help in CI/CD

I am new to this CI/CD thing. I know the concept is not new and it is as old as computer science itself but the buzz is new. I learned that for CI to work, you need some kind of automated tool that will test your new code and will tell if it passes or not so you can integrate it with main branch.

My question is can you point me to any such kind of tools that will automate this task? I mean let's say I am working on a project which has three modules; Login, Register, Generate Invoice. If I write a code for login, register and generating invoice than how will that tool be able to test this functionality?

https://redd.it/ed98t5
@r_devops
Migrating from Amazon Web Services (AWS) to Google Cloud Platform (GCP)

Here's a detailed article on how our DevOps team reduced downtime to a mere fraction and could introduce new features faster. [Give it a read.](https://blog.hike.in/migration-to-google-cloud-platform-gcp-b92036429a22)

https://redd.it/ed7349
@r_devops
Are there any good books (or book chapters) or articles on the theory and maths for performance testing?

Most load testing tools produce reports with mean, max, and percentile details. For example [this](https://jmeter.apache.org/usermanual/generating-dashboard.html) is a JMeter report.

But:

* How should we interpret the details in this report?
* What would be the success criteria?
* How can I make sure that my test is actually relevant and capturing the right details?

Are there any good books, papers, or articles that cover these topics?

https://redd.it/ed1p4c
@r_devops
I purchased a domain name from name.com and hosting my site at aws lightsail, where could I configure a forwarding email address?

Say I want an email address like [email protected], which only forwards it to my other account on gmail, do I need to set it up with name.com or with aws? Since AWS is providing nameserver?


Solution : If anyone else, faces the same issue, I used yandex mail service, and added mx record, spf record, and dkim signatures in lisghtsail's domain configuration.

https://redd.it/eczhuh
@r_devops
RollingUpdate Deployment on AKS is killing all POD's

Hi, i'm a DevOps Engineer and i have a issue with the RollingUpdate Deployment on AKS (Azure). When I try to execute a a pipeline in the stage of deploy that execute a RollingUpdate Strategy deployment on AKS the process kill all the POD's.

With this code:

`spec:`
`progressDeadlineSeconds: 60`
`strategy:`
`type: RollingUpdate`
`rollingUpdate:`
`maxUnavailable: 1`
`maxSurge: 1`

&#x200B;

I see this topic on Stack but I didn't find anything that works
[https://stackoverflow.com/questions/46369100/kubernetes-rolling-update-killing-off-old-pod-without-bringing-up-new-one](https://stackoverflow.com/questions/46369100/kubernetes-rolling-update-killing-off-old-pod-without-bringing-up-new-one)

https://redd.it/ecv3qm
@r_devops
Things to have in a resume for someone who wants to switch from developer to DevOps engineer

I have worked as a developer for more than 3 years. For the last 1 year I have been working with AWS, learning architecture and CICD in cloud. I will go for the solutions architect associate exam very soon. Now I want to apply for DevOps related jobs as I find it more interesting. I want to know what are the dos and don'ts for the resume. Thanks in advance. 🙂

https://redd.it/ecoy41
@r_devops
Serverless approach or Kubernetes Cluster Approach for Banking System

Hi , I am new to serverless architecture. I am about to create a banking application. Is it a good idea to develop my whole system using serverless architecture (using AWS SAM) or should it be a combination of both Serverless and Kubernetes Cluster. Thanks in advance

https://redd.it/ecor5c
@r_devops
Using Node, Git and SFTP for automated deployments

I plan to write a Node script that finds the changed files with Git and then deploys them to the server with SFTP. Is this an okay approach?

https://redd.it/ecokx7
@r_devops
I Want to learn Linux Administration

Hi everyone

I would like to learn Linux administration. i am very new to this.. I have already started with Linux Bible Ninth Edition. In the end I would like to get certified.

Can the experts in the community can help me as in any other books should i refer to.

&#x200B;

Thank you

Sumesh

https://redd.it/ecohy7
@r_devops
Silly question: What exactly should I do if my build fails in CI/CD process?

So I am a newbie who implemented CI/CD using github actions for a node project. I pushed code which will fail tests and cause a build failure on push to github but the problem is my changes are committed to the branch even if the build failed. Is this expected behavior? How should I handle my build failures?

https://redd.it/efmtep
@r_devops
Issues connecting to consul installed via Helm

I have a Kubernetes cluster that was created using KOPS which I have consul installed on via the helm chart with default values except server count and bootstrapexpect are both set to 1 because of this being a small test cluster - 2 workers and single master

I have a Node.js application that I am trying to connect to Consul. Below are the logs for what I think is relavent information, if I am missing something useful ask and I can provide it likely.

&#x200B;

Error message given by my applcation seen by doing kubectl logs <pod>

{"message":"Error: Error: connect ECONNREFUSED 10.0.32.42:8500","level":"error"}
/opt/node_app/app/middleware/authorization.js:13
throw err;
^

Error: connect ECONNREFUSED 10.0.32.42:8500
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14) {
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '10.0.32.42',
port: 8500
}

kubectl describe consul server 0

I'm aware this one is showing rediness probe failed however I can't figure out why

Name: consul-consul-server-0
Namespace: development
Priority: 0
Node: ip-10-0-32-42.ec2.internal/10.0.32.42
Start Time: Wed, 18 Dec 2019 19:32:24 -0500
Labels: app=consul
chart=consul-helm
component=server
controller-revision-hash=consul-consul-server-6c689958b9
hasDNS=true
release=consul
statefulset.kubernetes.io/pod-name=consul-consul-server-0
Annotations: consul.hashicorp.com/connect-inject: false
Status: Running
IP: 100.96.21.3
Controlled By: StatefulSet/consul-consul-server
Containers:
consul:
Container ID: docker://05acd44001b0702aa7219f6c5b2217ab3d9615b5b33b363720c98bc0b8c87ce9
Image: consul:1.6.2
Image ID: docker-pullable://consul@sha256:a167e7222c84687c3e7f392f13b23d9f391cac80b6b839052e58617dab714805
Ports: 8500/TCP, 8301/TCP, 8302/TCP, 8300/TCP, 8600/TCP, 8600/UDP
Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/UDP
Command:
/bin/sh
-ec
CONSUL_FULLNAME="consul-consul"

exec /bin/consul agent \
-advertise="${POD_IP}" \
-bind=0.0.0.0 \
-bootstrap-expect=1 \
-client=0.0.0.0 \
-config-dir=/consul/config \
-datacenter=dc1 \
-data-dir=/consul/data \
-domain=consul \
-hcl="connect { enabled = true }" \
-ui \
-retry-join=${CONSUL_FULLNAME}-server-0.${CONSUL_FULLNAME}-server.${NAMESPACE}.svc \
-server

State: Running
Started: Wed, 18 Dec 2019 19:32:33 -0500
Ready: True
Restart Count: 0
Readiness: exec [/bin/sh -ec curl https://127.0.0.1:8500/v1/status/leader 2>/dev/null | \
grep -E '".+"'
] delay=5s timeout=5s period=3s #success=1 #failure=2
Environment:
POD_IP: (v1:status.podIP)
NAMESPACE: development (v1:metadata.namespace)
Mounts:
/consul/config from config (rw)
/consul/data from data-development (rw)
/var/run/secrets/kubernetes.io/serviceaccount from consul-consul-server-token-42ss6 (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
data-development:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: data-development-consul-consul-server-0
ReadOnly: false
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: consul-consul-server-config
Optional: false
consul-consul-server-token-
42ss6:
Type: Secret (a volume populated by a Secret)
SecretName: consul-consul-server-token-42ss6
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 5m53s (x7 over 6m9s) default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 2 times)
Normal Scheduled 5m53s default-scheduler Successfully assigned development/consul-consul-server-0 to ip-10-0-32-42.ec2.internal
Warning FailedAttachVolume 5m51s (x3 over 5m53s) attachdetach-controller AttachVolume.Attach failed for volume "pvc-fd6b0c40-21f6-11ea-9540-020941ae37b7" : "Error attaching EBS volume \"vol-0ff35f1bebdbe2330\"" to instance "i-03ee444d8bb8a0a88" since volume is in "creating" state
Normal SuccessfulAttachVolume 5m47s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-fd6b0c40-21f6-11ea-9540-020941ae37b7"
Normal Pulled 5m44s kubelet, ip-10-0-32-42.ec2.internal Container image "consul:1.6.2" already present on machine
Normal Created 5m44s kubelet, ip-10-0-32-42.ec2.internal Created container
Normal Started 5m44s kubelet, ip-10-0-32-42.ec2.internal Started container
Warning Unhealthy 5m37s kubelet, ip-10-0-32-42.ec2.internal Readiness probe failed:


&#x200B;

kubectl describe on a agent

Name: consul-consul-hzndl
Namespace: development
Priority: 0
Node: ip-10-0-32-42.ec2.internal/10.0.32.42
Start Time: Wed, 18 Dec 2019 19:32:08 -0500
Labels: app=consul
chart=consul-helm
component=client
controller-revision-hash=5db9fb58cd
hasDNS=true
pod-template-generation=1
release=consul
Annotations: consul.hashicorp.com/connect-inject: false
Status: Running
IP: 100.96.21.2
Controlled By: DaemonSet/consul-consul
Containers:
consul:
Container ID: docker://67cc1d0ae1698732cb944373c79e8685a51ba3899c4ca9d52a9ae934c7f2e479
Image: consul:1.6.2
Image ID: docker-pullable://consul@sha256:a167e7222c84687c3e7f392f13b23d9f391cac80b6b839052e58617dab714805
Ports: 8500/TCP, 8502/TCP, 8301/TCP, 8301/UDP, 8302/TCP, 8300/TCP, 8600/TCP, 8600/UDP
Host Ports: 8500/TCP, 8502/TCP, 0/TCP, 0/UDP, 0/TCP, 0/TCP, 0/TCP, 0/UDP
Command:
/bin/sh
-ec
CONSUL_FULLNAME="consul-consul"

exec /bin/consul agent \
-node="${NODE}" \
-advertise="${ADVERTISE_IP}" \
-bind=0.0.0.0 \
-client=0.0.0.0 \
-hcl="ports { grpc = 8502 }" \
-config-dir=/consul/config \
-datacenter=dc1 \
-data-dir=/consul/data \
-retry-join=${CONSUL_FULLNAME}-server-0.${CONSUL_FULLNAME}-server.${NAMESPACE}.svc \
-domain=consul

State: Running
Started: Wed, 18 Dec 2019 19:32:12 -0500
Ready: True
Restart Count: 0
Readiness: exec [/bin/sh -ec curl https://127.0.0.1:8500/v1/status/leader 2>/dev/null | \
grep -E '".+"'
] delay=0s timeout=1s period=10s #success=1 #failure=3
Environment:
ADVERTISE_IP: (v1:status.podIP)
NAMESPACE: development (v1:metadata.namespace)
NODE: (v1:spec.nodeName)
Mounts:
/consul/config from config (rw)
/consul/data from data (rw)
/var/run/secrets/kubernetes.io/serviceaccount from consul-consul-client-token-xp5q9 (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
data:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: consul-consul-client-config
Optional: false
consul-consul-client-token-xp5q9:
Type: Secret (a volume populated by a Secret)
SecretName: consul-consul-client-token-xp5q9
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/disk-pressure:NoSchedule
node.kubernetes.io/memory-pressure:NoSchedule
node.kubernetes.io/not-ready:NoExecute
node.kubernetes.io/unreachable:NoExecute
node.kubernetes.io/unschedulable:NoSchedule
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 5m44s default-scheduler Successfully assigned development/consul-consul-hzndl to ip-10-0-32-42.ec2.internal
Normal Pulling 5m43s kubelet, ip-10-0-32-42.ec2.internal pulling image "consul:1.6.2"
Normal Pulled 5m40s kubelet, ip-10-0-32-42.ec2.internal Successfully pulled image "consul:1.6.2"
Normal Created 5m40s kubelet, ip-10-0-32-42.ec2.internal Created container
Normal Started 5m40s kubelet, ip-10-0-32-42.ec2.internal Started container
Warning Unhealthy 5m12s (x3 over 5m32s) kubelet, ip-10-0-32-42.ec2.internal Readiness probe failed:


SSH'ing into the worker nodes and doing a curl on localhost (someone said to try it online so I gave it a shot) results in a connection refused.

&#x200B;

In my helm chart (deployment file) for my Node.js application I have this code which is providing the IP for consul to connect to

env:
- name: CONSUL
valueFrom:
fieldRef:
fieldPath: status.hostIP

I got the above from [here](https://www.consul.io/docs/platform/k8s/run.html#accessing-the-consul-http-api) so I expected it to work.

&#x200B;

So from my digging around I am fairly sure it's because the services are not passing the readiness checks even though kubectl get pods is showing 1/1 for all pods

&#x200B;

Suggestions on what I can try to get my application to connect?

https://redd.it/eclflw
@r_devops