<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SujeethKumarReddy &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/author/sujeethkumarreddy/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bestdevops.com</link>
	<description>Lets Learn, Do it &#38; Share! Thats a Best DevOps!!!</description>
	<lastBuildDate>Thu, 30 Dec 2021 06:47:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Artifactory Excercise -Sujeeth</title>
		<link>https://www.bestdevops.com/artifactory-excercise-sujeeth/</link>
		
		<dc:creator><![CDATA[SujeethKumarReddy]]></dc:creator>
		<pubDate>Mon, 09 Aug 2021 08:01:23 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18881</guid>

					<description><![CDATA[Assignment #1 External Network Port 80818082 ( for Web Access ) Internal Network Ports (default) 8081 for Artifactory8040 and 8045 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Assignment #1</h2>


<pre class="wp-block-code"><span><code class="hljs">1) What are the Top maven goals we have?

mvn clean
mvn install
mvn deploy
</code></span></pre>

<pre class="wp-block-code"><span><code class="hljs">2) What are the Ports being used in Artifactory and why? Create a table and describe it.</code></span></pre>


<figure class="wp-block-table"><table><tbody><tr><td>External Network Port</td><td>8081<br>8082 ( for Web Access )</td></tr><tr><td>Internal Network Ports (default)</td><td>8081 for Artifactory<br>8040 and 8045 for Access<br>8048 and 9092 for the Replicator<br>8070 for Web<br>8086 for Metadata<br>8082, 8046, 8047, 8049, and 8091 for the Router<br>8061, and 8062 for Events</td></tr></tbody></table></figure>


<pre class="wp-block-code"><span><code class="hljs">3) Find out which maven goal help you to upload a artifact?

mvn deploy</code></span></pre>

<pre class="wp-block-code"><span><code class="hljs">4) Find out which gradle tasks help you to upload a artifact?

maven-publish</code></span></pre>


<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe  id="_ytid_24098"  width="675" height="379"  data-origwidth="675" data-origheight="379" src="https://www.youtube.com/embed/?enablejsapi=1&#038;list=PLTCuRW0ikUdNbCbppA72VxnZ3MU-oDiVH&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;" class="__youtube_prefs__  epyt-is-override  no-lazyload" title="YouTube player"  allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe>
</div></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PKS Post Assessment – Sujeeth</title>
		<link>https://www.bestdevops.com/pks-post-assessment-sujeeth/</link>
		
		<dc:creator><![CDATA[SujeethKumarReddy]]></dc:creator>
		<pubDate>Fri, 06 Aug 2021 07:43:56 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18789</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<pre class="wp-block-code"><span><code class="hljs">cf auth
cf login
cf create-app-manifest
cf apply-manifest
cf push
cf help
cf logout
cf password
cf api
cf orgs
cf spaces
cf org-quota
cf buildpacks
cf services
cf create-service
cf create-app
cf create-package
cf stage-package</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ReplicasSets-DeamonSets-Statefulsets-Service-Loadbalancer-Discovery Services-CoreDNS-Sujeeth</title>
		<link>https://www.bestdevops.com/replicassets-deamonsets-statefulsets-service-loadbalancer-discovery-services-coredns-sujeeth/</link>
		
		<dc:creator><![CDATA[SujeethKumarReddy]]></dc:creator>
		<pubDate>Fri, 30 Jul 2021 03:41:21 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18552</guid>

					<description><![CDATA[ReplicasSets-DeamonSets-Statefulsets-Service-Loadbalancer-Discovery Services-CoreDNS]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>ReplicasSets-DeamonSets-Statefulsets-Service-Loadbalancer-Discovery Services-CoreDNS</strong></p>


<pre class="wp-block-code"><span><code class="hljs">Assignment – 1
What is ReplicasSets?
A ReplicaSet is a process that runs multiple instances of a Pod and keeps the specified number of Pods constant.
Its purpose is to maintain the specified number of Pod instances running in a cluster at any given time to prevent users from losing access to their application when a Pod fails or is inaccessible.

How to work with ReplicasSets?
ReplicaSet helps bring up a new instance of a Pod when the existing one fails,
scale it up when the running instances are not up to the specified number, and scale down or delete Pods if another instance with the same label is created.
A ReplicaSet ensures that a specified number of Pod replicas are running continuously and helps with load-balancing in case of an increase in resource usage.

Example of ReplicasSets?
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: my-replicaset
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
– name: my-container
image: nginx

Assignment – 2
What is DeamonSets?
The DaemonSet feature is used to ensure that some or all of your pods are scheduled and running on every single available node. This essentially runs a copy of the desired pod across all nodes.

How to work with DeamonSets?
When a new node is added to a Kubernetes cluster, a new pod will be added to that newly attached node.
When a node is removed, the DaemonSet controller ensures that the pod associated with that node is garbage collected. Deleting a DaemonSet will clean up all the pods that DaemonSet has created.
By default, the node that a pod runs on is decided by the Kubernetes scheduler. However, DaemonSet pods are created and scheduled by the DaemonSet controller

Example of DeamonSets?
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: test-daemonset
namespace: test-daemonset-namespace
Labels:
app-type: test-app-type
spec:
template:
metadata:
labels:
name: test-daemonset-container
selector:
matchLabels:
name: test-daemonset-container
ref : https://www.bmc.com/blogs/kubernetes-daemonset/

Assignment – 3
What is Statefulsets?
A StatefulSet is a controller that helps you deploy and scale groups of Kubernetes pods.
How to work with Statefulsets?
When using Kubernetes, most of the time you don’t care how your pods are scheduled, but sometimes you care that pods are deployed in order, that they have a persistent storage volume, or that they have a unique, stable network identifier across restarts and reschedules.
In those cases, StatefulSets can help you accomplish your objective.

Example of Statefulsets?

Assignment – 4
What is Service?
Services provide network connectivity to Pods
The basic building block starts with the Pod, which is just a resource that can be created and destroyed on demand.
Because a Pod can be moved or rescheduled to another Node, any internal IPs that this Pod is assigned can change over time.
If we were to connect to this Pod to access our application, it would not work on the next re-deployment.
To make a Pod reachable to external networks or clusters without relying on any internal IPs, we need another layer of abstraction.
K8s offers that abstraction with what we call a Service Deployment.

How Service Works?
What are the types of Service?
Example Yaml of Service

Assigment#5
What is Loadbalancer?
Load Balancer acts as a ‘traffic controller’ for your server and directs the requests to an available one, capable of fulfilling the request efficiently.
This ensures that requests are responded to fast and no server is over-stressed to degrade the performance.
In an organization’s attempt to meet the application demands, Load Balancer assists in deciding which server can efficiently handle the requests. This creates a better user experience.

What are the types of Loadbalancer?
a.) Network Load Balancer / Layer 4 (L4) Load Balancer: Transport Layer
Based on the network variables like IP address and destination ports, Network Load balancing is the distribution of traffic at the transport level through the routing decisions. Such load balancing is TCP
i.e. level 4, and does not consider any parameter at the application level like the type of content, cookie data, headers, locations, application behavior etc.
Performing network addressing translations without inspecting the content of discrete packets, Network Load Balancing cares only about the network layer information and directs the traffic on this basis only.
b.) Application Load Balancer / Layer 7 (L7) Load Balancer: Application Layer
Ranking highest in the OSI model, Layer 7 load balancer distributes the requests based on multiple parameters at the application level.
A much wider range of data is evaluated by the L7 load balancer including the HTTP headers and SSL sessions and distributes the server load based on the decision arising from a combination of several variables.
This way application load balancers control the server traffic based on the individual usage and behavior.
c.) Global Server Load Balancer/Multi-site Load Balancer:
With the increasing number of applications being hosted in cloud data centers, located at varied geographies, the GSLB extends the capabilities of general L4 and L7 across various data centers facilitating the efficient global load distribution,
without degrading the experience for end users. In addition to the efficient traffic balancing, multi-site load balancers also help in quick recovery and seamless business operations, in case of server disaster or disaster at any data center, as other data centers at any part of the world can be used for business continuity.
Load Balancing Methods
All kinds of Load Balancers receive the balancing requests, which are processed in accordance with a pre-configured algorithm.
3.1: Industry Standard Algorithms
The most common load balancing methodologies include:
a) Round Robin Algorithm:
It relies on a rotation system to sort the traffic when working with servers of equal value. The request is transferred to the first available server and then that server is placed at the bottom of the line.
b) Weighted Round Robin Algorithm:
This algorithm is deployed to balance loads of different servers with different characteristics.
c) Least Connections Algorithm:
In this algorithm, traffic is directed to the server having the least traffic. This helps maintain the optimized performance, especially at peak hours by maintaining a uniform load at all the servers.
d) Least Response Time Algorithm:
This algorithm, like the least connection one, directs traffic to the server with a lower number of active connections and also considers the server having the least response time as its top priority.
e) IP Hash Algorithm:
A fairly simple balancing technique assigns the client’s IP address to a fixed server for optimal performance.

How Loadbalancer works?
Distributes a set of tasks over different computing units (or related resources), to make the overall process easier to execute and much more efficient.
Ensuring no single server bears too much of demand and evenly spreading the load, it improves the responsiveness and availability of applications or websites for the user.

Assigment#6
What is Discovery Services?
Service discovery is the actual process of figuring out how to connect to a service.
Automatically detecting devices and services on a network.
Service discovery protocol (SDP) is a networking standard that accomplishes detection of networks by identifying resources.

Types of service discovery
There are two types of service discovery:
Server-side service discovery allows clients applications to find services through a router or a load balancer.
Client-side service discovery allows clients applications to find services by looking through or querying a service registry, in which service instances and endpoints are all within the service registry.

How Discovery Services works?
There are three components to Service Discovery: the service provider, the service consumer and the service registry.
1) The Service Provider registers itself with the service registry when it enters the system and de-registers itself when it leaves the system.
2) The Service Consumer gets the location of a provider from the service registry, and then connects it to the service provider.
3) The Service Registry is a database that contains the network locations of service instances.
The service registry needs to be highly available and up to date so clients can go through network locations obtained from the service registry.
A service registry consists of a cluster of servers that use a replication protocol to maintain consistency.
ref : https://avinetworks.com/glossary/service-discovery/

What is CoreDNS?
The coredns add-on is a DNS server that provides domain name resolution services for Kubernetes clusters
coredns is an open-source software
It provides a means for cloud services to discover each other in cloud-native deployments

Use of CoreDNS?
In a Kubernetes cluster, coredns can automatically discover services in the cluster and provide domain name resolution for these services.
Kubernetes v1.11 and later back CoreDNS as the official default DNS for all clusters going forward.</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Certificate based Authentication in k8s-Sujeeth</title>
		<link>https://www.bestdevops.com/certificate-based-authentication-in-k8s-sujeeth/</link>
		
		<dc:creator><![CDATA[SujeethKumarReddy]]></dc:creator>
		<pubDate>Fri, 30 Jul 2021 03:36:38 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18550</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<pre class="wp-block-code"><span><code class="hljs language-javascript">How certificates are used by your cluster
– Kubernetes uses client certificates, bearer tokens, an authenticating proxy, or HTTP basic auth to authenticate API requests through authentication plugins
– Client certificates generated by kubeadm expire after <span class="hljs-number">1</span> year.
– By <span class="hljs-keyword">default</span>, kubeadm generates all the certificates needed <span class="hljs-keyword">for</span> a cluster to run. You can override <span class="hljs-keyword">this</span> behavior by providing your own certificates.
– you must place them <span class="hljs-keyword">in</span> whatever directory is specified by the –cert-dir flag or the certificatesDir field <span class="hljs-keyword">of</span> kubeadm’s ClusterConfiguration. By <span class="hljs-keyword">default</span> <span class="hljs-keyword">this</span> is /etc/kubernetes/pki.
If a given certificate and private key pair exists before running kubeadm init, kubeadm does not overwrite them. This means you can, <span class="hljs-keyword">for</span> example, copy an existing CA into /etc/kubernetes/pki/ca.crt and /etc/kubernetes/pki/ca.key, and kubeadm will use <span class="hljs-keyword">this</span> CA <span class="hljs-keyword">for</span> signing the rest <span class="hljs-keyword">of</span> the certificates.
command : kubeadm certs check-expiration

Kubernetes requires PKI <span class="hljs-keyword">for</span> the following operations:
Client certificates <span class="hljs-keyword">for</span> the kubelet to authenticate to the API server
Server certificate <span class="hljs-keyword">for</span> the API server endpoint
Client certificates <span class="hljs-keyword">for</span> administrators <span class="hljs-keyword">of</span> the cluster to authenticate to the API server
Client certificates <span class="hljs-keyword">for</span> the API server to talk to the kubelets
Client certificate <span class="hljs-keyword">for</span> the API server to talk to etcd
Client certificate/kubeconfig <span class="hljs-keyword">for</span> the controller manager to talk to the API server
Client certificate/kubeconfig <span class="hljs-keyword">for</span> the scheduler to talk to the API server.
Client and server certificates <span class="hljs-keyword">for</span> the front-proxy

Where certificates are stored
If you install Kubernetes <span class="hljs-keyword">with</span> kubeadm, certificates are stored <span class="hljs-keyword">in</span> /etc/kubernetes/pki.
ref : https:<span class="hljs-comment">//kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/</span>

volume plugins <span class="hljs-keyword">in</span> kubernetes
<span class="hljs-attr">https</span>:<span class="hljs-comment">//v1-17.docs.kubernetes.io/docs/concepts/storage/volumes/</span>
https:<span class="hljs-comment">//kubernetes.io/docs/concepts/storage/volumes/</span>

StorageClass
A StorageClass provides a way <span class="hljs-keyword">for</span> administrators to describe the “classes” <span class="hljs-keyword">of</span> storage they offer. Different classes might map to quality-<span class="hljs-keyword">of</span>-service levels, or to backup policies, or to arbitrary policies determined by the cluster administrators.
Kubernetes itself is unopinionated about what classes represent.
This concept is sometimes called “profiles” <span class="hljs-keyword">in</span> other storage systems.
A PersistentVolume (PV) is a piece <span class="hljs-keyword">of</span> storage <span class="hljs-keyword">in</span> the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes.
It is a resource <span class="hljs-keyword">in</span> the cluster just like a node is a cluster resource. PVs are volume plugins like Volumes,
but have a lifecycle independent <span class="hljs-keyword">of</span> any individual Pod that uses the PV.
This API object captures the details <span class="hljs-keyword">of</span> the implementation <span class="hljs-keyword">of</span> the storage, be that NFS, iSCSI, or a cloud-provider-specific storage system.
A PersistentVolumeClaim (PVC) is a request <span class="hljs-keyword">for</span> storage by a user. It is similar to a Pod. Pods consume node resources and PVCs consume PV resources.
Pods can request specific levels <span class="hljs-keyword">of</span> resources (CPU and Memory). Claims can request specific size and access modes




Provisioning
There are two ways PVs may be provisioned: statically or dynamically.
Static
A cluster administrator creates a number <span class="hljs-keyword">of</span> PVs. They carry the details <span class="hljs-keyword">of</span> the real storage, which is available <span class="hljs-keyword">for</span> use by cluster users. They exist <span class="hljs-keyword">in</span> the Kubernetes API and are available <span class="hljs-keyword">for</span> consumption.
Dynamic
When none <span class="hljs-keyword">of</span> the <span class="hljs-keyword">static</span> PVs the administrator created match a user’s PersistentVolumeClaim, the cluster may <span class="hljs-keyword">try</span> to dynamically provision a volume specially <span class="hljs-keyword">for</span> the PVC.
This provisioning is based on StorageClasses: the PVC must request a storage <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">and</span> <span class="hljs-title">the</span> <span class="hljs-title">administrator</span> <span class="hljs-title">must</span> <span class="hljs-title">have</span> <span class="hljs-title">created</span> <span class="hljs-title">and</span> <span class="hljs-title">configured</span> <span class="hljs-title">that</span> <span class="hljs-title">class</span> <span class="hljs-title">for</span> <span class="hljs-title">dynamic</span> <span class="hljs-title">provisioning</span> <span class="hljs-title">to</span> <span class="hljs-title">occur</span>.
<span class="hljs-title">Claims</span> <span class="hljs-title">that</span> <span class="hljs-title">request</span> <span class="hljs-title">the</span> <span class="hljs-title">class</span> “” <span class="hljs-title">effectively</span> <span class="hljs-title">disable</span> <span class="hljs-title">dynamic</span> <span class="hljs-title">provisioning</span> <span class="hljs-title">for</span> <span class="hljs-title">themselves</span>.

<span class="hljs-title">Block</span> <span class="hljs-title">vs</span>. <span class="hljs-title">object</span> <span class="hljs-title">vs</span>. <span class="hljs-title">file</span> <span class="hljs-title">storage</span>
<span class="hljs-title">Block</span> <span class="hljs-title">storage</span>
<span class="hljs-title">Block</span> <span class="hljs-title">storage</span> <span class="hljs-title">is</span> <span class="hljs-title">not</span> <span class="hljs-title">alone</span> <span class="hljs-title">in</span> <span class="hljs-title">the</span> <span class="hljs-title">world</span> <span class="hljs-title">of</span> <span class="hljs-title">data</span> <span class="hljs-title">storage</span>. <span class="hljs-title">Developers</span> <span class="hljs-title">also</span> <span class="hljs-title">use</span> <span class="hljs-title">other</span> <span class="hljs-title">systems</span>, <span class="hljs-title">such</span> <span class="hljs-title">as</span> <span class="hljs-title">object</span> <span class="hljs-title">storage</span> <span class="hljs-title">and</span> <span class="hljs-title">file</span> <span class="hljs-title">storage</span>. <span class="hljs-title">While</span> <span class="hljs-title">the</span> <span class="hljs-title">ultimate</span> <span class="hljs-title">goal</span> <span class="hljs-title">of</span> <span class="hljs-title">each</span> <span class="hljs-title">is</span> <span class="hljs-title">to</span> <span class="hljs-title">provide</span> <span class="hljs-title">data</span> <span class="hljs-title">to</span> <span class="hljs-title">users</span> <span class="hljs-title">and</span> <span class="hljs-title">applications</span>, <span class="hljs-title">each</span> <span class="hljs-title">of</span> <span class="hljs-title">those</span> <span class="hljs-title">storage</span> <span class="hljs-title">methods</span> <span class="hljs-title">goes</span> <span class="hljs-title">about</span> <span class="hljs-title">storing</span> <span class="hljs-title">and</span> <span class="hljs-title">retrieving</span> <span class="hljs-title">data</span> <span class="hljs-title">differently</span>.

<span class="hljs-title">Object</span> <span class="hljs-title">storage</span>
– <span class="hljs-title">Object</span> <span class="hljs-title">storage</span>, <span class="hljs-title">which</span> <span class="hljs-title">is</span> <span class="hljs-title">also</span> <span class="hljs-title">known</span> <span class="hljs-title">as</span> <span class="hljs-title">object</span>-<span class="hljs-title">based</span> <span class="hljs-title">storage</span>, <span class="hljs-title">breaks</span> <span class="hljs-title">data</span> <span class="hljs-title">files</span> <span class="hljs-title">up</span> <span class="hljs-title">into</span> <span class="hljs-title">pieces</span> <span class="hljs-title">called</span> <span class="hljs-title">objects</span>. <span class="hljs-title">It</span> <span class="hljs-title">then</span> <span class="hljs-title">stores</span> <span class="hljs-title">those</span> <span class="hljs-title">objects</span> <span class="hljs-title">in</span> <span class="hljs-title">a</span> <span class="hljs-title">single</span> <span class="hljs-title">repository</span>, <span class="hljs-title">which</span> <span class="hljs-title">can</span> <span class="hljs-title">be</span> <span class="hljs-title">spread</span> <span class="hljs-title">out</span> <span class="hljs-title">across</span> <span class="hljs-title">multiple</span> <span class="hljs-title">networked</span> <span class="hljs-title">systems</span>.
– <span class="hljs-title">In</span> <span class="hljs-title">practice</span>, <span class="hljs-title">applications</span> <span class="hljs-title">manage</span> <span class="hljs-title">all</span> <span class="hljs-title">of</span> <span class="hljs-title">the</span> <span class="hljs-title">objects</span>, <span class="hljs-title">eliminating</span> <span class="hljs-title">the</span> <span class="hljs-title">need</span> <span class="hljs-title">for</span> <span class="hljs-title">a</span> <span class="hljs-title">traditional</span> <span class="hljs-title">file</span> <span class="hljs-title">system</span>. <span class="hljs-title">Each</span> <span class="hljs-title">object</span> <span class="hljs-title">receives</span> <span class="hljs-title">a</span> <span class="hljs-title">unique</span> <span class="hljs-title">ID</span>, <span class="hljs-title">which</span> <span class="hljs-title">applications</span> <span class="hljs-title">use</span> <span class="hljs-title">to</span> <span class="hljs-title">identify</span> <span class="hljs-title">the</span> <span class="hljs-title">object</span>. <span class="hljs-title">And</span> <span class="hljs-title">each</span> <span class="hljs-title">object</span> <span class="hljs-title">stores</span> <span class="hljs-title">metadata</span>—<span class="hljs-title">information</span> <span class="hljs-title">about</span> <span class="hljs-title">the</span> <span class="hljs-title">files</span> <span class="hljs-title">stored</span> <span class="hljs-title">in</span> <span class="hljs-title">the</span> <span class="hljs-title">object</span>.
– <span class="hljs-title">One</span> <span class="hljs-title">important</span> <span class="hljs-title">difference</span> <span class="hljs-title">between</span> <span class="hljs-title">object</span> <span class="hljs-title">storage</span> <span class="hljs-title">and</span> <span class="hljs-title">block</span> <span class="hljs-title">storage</span> <span class="hljs-title">is</span> <span class="hljs-title">how</span> <span class="hljs-title">each</span> <span class="hljs-title">handles</span> <span class="hljs-title">metadata</span>.
<span class="hljs-title">In</span> <span class="hljs-title">object</span> <span class="hljs-title">storage</span>, <span class="hljs-title">metadata</span> <span class="hljs-title">can</span> <span class="hljs-title">be</span> <span class="hljs-title">customized</span> <span class="hljs-title">to</span> <span class="hljs-title">include</span> <span class="hljs-title">additional</span>, <span class="hljs-title">detailed</span> <span class="hljs-title">information</span> <span class="hljs-title">about</span> <span class="hljs-title">the</span> <span class="hljs-title">data</span> <span class="hljs-title">files</span> <span class="hljs-title">stored</span> <span class="hljs-title">in</span> <span class="hljs-title">the</span> <span class="hljs-title">object</span>.
<span class="hljs-title">For</span> <span class="hljs-title">example</span>, <span class="hljs-title">metadata</span> <span class="hljs-title">accompanying</span> <span class="hljs-title">a</span> <span class="hljs-title">video</span> <span class="hljs-title">file</span> <span class="hljs-title">could</span> <span class="hljs-title">be</span> <span class="hljs-title">customized</span> <span class="hljs-title">to</span> <span class="hljs-title">tell</span> <span class="hljs-title">where</span> <span class="hljs-title">the</span> <span class="hljs-title">video</span> <span class="hljs-title">was</span> <span class="hljs-title">made</span>, <span class="hljs-title">the</span> <span class="hljs-title">type</span> <span class="hljs-title">of</span> <span class="hljs-title">camera</span> <span class="hljs-title">used</span> <span class="hljs-title">to</span> <span class="hljs-title">shoot</span> <span class="hljs-title">it</span>, <span class="hljs-title">and</span> <span class="hljs-title">even</span> <span class="hljs-title">what</span> <span class="hljs-title">subjects</span> <span class="hljs-title">were</span> <span class="hljs-title">captured</span> <span class="hljs-title">in</span> <span class="hljs-title">each</span> <span class="hljs-title">frame</span>. <span class="hljs-title">In</span> <span class="hljs-title">block</span> <span class="hljs-title">storage</span>, <span class="hljs-title">metadata</span> <span class="hljs-title">is</span> <span class="hljs-title">limited</span> <span class="hljs-title">to</span> <span class="hljs-title">basic</span> <span class="hljs-title">file</span> <span class="hljs-title">attributes</span>.
<span class="hljs-title">Block</span> <span class="hljs-title">storage</span> <span class="hljs-title">is</span> <span class="hljs-title">best</span> <span class="hljs-title">suited</span> <span class="hljs-title">for</span> <span class="hljs-title">static</span> <span class="hljs-title">files</span> <span class="hljs-title">that</span> <span class="hljs-title">aren</span>’<span class="hljs-title">t</span> <span class="hljs-title">changed</span> <span class="hljs-title">often</span> <span class="hljs-title">because</span> <span class="hljs-title">any</span> <span class="hljs-title">change</span> <span class="hljs-title">made</span> <span class="hljs-title">to</span> <span class="hljs-title">a</span> <span class="hljs-title">file</span> <span class="hljs-title">results</span> <span class="hljs-title">in</span> <span class="hljs-title">the</span> <span class="hljs-title">creation</span> <span class="hljs-title">of</span> <span class="hljs-title">a</span> <span class="hljs-title">new</span> <span class="hljs-title">object</span>.

<span class="hljs-title">File</span> <span class="hljs-title">storage</span>
– <span class="hljs-title">File</span> <span class="hljs-title">storage</span>, <span class="hljs-title">which</span> <span class="hljs-title">is</span> <span class="hljs-title">also</span> <span class="hljs-title">referred</span> <span class="hljs-title">to</span> <span class="hljs-title">as</span> <span class="hljs-title">file</span>-<span class="hljs-title">level</span> <span class="hljs-title">or</span> <span class="hljs-title">file</span>-<span class="hljs-title">based</span> <span class="hljs-title">storage</span>, <span class="hljs-title">is</span> <span class="hljs-title">normally</span> <span class="hljs-title">associated</span> <span class="hljs-title">with</span> <span class="hljs-title">Network</span> <span class="hljs-title">Attached</span> <span class="hljs-title">Storage</span> (<span class="hljs-title">NAS</span>) <span class="hljs-title">technology</span>. <span class="hljs-title">NAS</span> <span class="hljs-title">presents</span> <span class="hljs-title">storage</span> <span class="hljs-title">to</span> <span class="hljs-title">users</span> <span class="hljs-title">and</span> <span class="hljs-title">applications</span> <span class="hljs-title">using</span> <span class="hljs-title">the</span> <span class="hljs-title">same</span> <span class="hljs-title">ideology</span> <span class="hljs-title">as</span> <span class="hljs-title">a</span> <span class="hljs-title">traditional</span> <span class="hljs-title">network</span> <span class="hljs-title">file</span> <span class="hljs-title">system</span>.
– <span class="hljs-title">In</span> <span class="hljs-title">other</span> <span class="hljs-title">words</span>, <span class="hljs-title">the</span> <span class="hljs-title">user</span> <span class="hljs-title">or</span> <span class="hljs-title">application</span> <span class="hljs-title">receives</span> <span class="hljs-title">data</span> <span class="hljs-title">through</span> <span class="hljs-title">directory</span> <span class="hljs-title">trees</span>, <span class="hljs-title">folders</span>, <span class="hljs-title">and</span> <span class="hljs-title">individual</span> <span class="hljs-title">files</span>. <span class="hljs-title">This</span> <span class="hljs-title">functions</span> <span class="hljs-title">similarly</span> <span class="hljs-title">to</span> <span class="hljs-title">a</span> <span class="hljs-title">local</span> <span class="hljs-title">hard</span> <span class="hljs-title">drive</span>. <span class="hljs-title">However</span>, <span class="hljs-title">NAS</span> <span class="hljs-title">or</span> <span class="hljs-title">the</span> <span class="hljs-title">Network</span> <span class="hljs-title">Operating</span> <span class="hljs-title">System</span> (<span class="hljs-title">NOS</span>) <span class="hljs-title">handle</span> <span class="hljs-title">access</span> <span class="hljs-title">rights</span>, <span class="hljs-title">file</span> <span class="hljs-title">sharing</span>, <span class="hljs-title">file</span> <span class="hljs-title">locking</span>, <span class="hljs-title">and</span> <span class="hljs-title">other</span> <span class="hljs-title">controls</span>.
– <span class="hljs-title">File</span> <span class="hljs-title">storage</span> <span class="hljs-title">can</span> <span class="hljs-title">be</span> <span class="hljs-title">very</span> <span class="hljs-title">easy</span> <span class="hljs-title">to</span> <span class="hljs-title">configure</span>, <span class="hljs-title">but</span> <span class="hljs-title">access</span> <span class="hljs-title">to</span> <span class="hljs-title">data</span> <span class="hljs-title">is</span> <span class="hljs-title">constrained</span> <span class="hljs-title">by</span> <span class="hljs-title">a</span> <span class="hljs-title">single</span> <span class="hljs-title">path</span> <span class="hljs-title">to</span> <span class="hljs-title">the</span> <span class="hljs-title">data</span>, <span class="hljs-title">which</span> <span class="hljs-title">can</span> <span class="hljs-title">impact</span> <span class="hljs-title">performance</span> <span class="hljs-title">compared</span> <span class="hljs-title">to</span> <span class="hljs-title">block</span> <span class="hljs-title">or</span> <span class="hljs-title">object</span> <span class="hljs-title">storage</span>. <span class="hljs-title">File</span> <span class="hljs-title">storage</span> <span class="hljs-title">also</span> <span class="hljs-title">only</span> <span class="hljs-title">operates</span> <span class="hljs-title">with</span> <span class="hljs-title">common</span> <span class="hljs-title">file</span>-<span class="hljs-title">level</span> <span class="hljs-title">protocols</span>, <span class="hljs-title">such</span> <span class="hljs-title">as</span> <span class="hljs-title">a</span> <span class="hljs-title">New</span> <span class="hljs-title">Technology</span> <span class="hljs-title">File</span> <span class="hljs-title">System</span> (<span class="hljs-title">NTFS</span>) <span class="hljs-title">for</span> <span class="hljs-title">Windows</span> <span class="hljs-title">or</span> <span class="hljs-title">a</span> <span class="hljs-title">Network</span> <span class="hljs-title">File</span> <span class="hljs-title">System</span> (<span class="hljs-title">NFS</span>) <span class="hljs-title">for</span> <span class="hljs-title">Linux</span>. <span class="hljs-title">This</span> <span class="hljs-title">could</span> <span class="hljs-title">limit</span> <span class="hljs-title">usability</span> <span class="hljs-title">across</span> <span class="hljs-title">dissimilar</span> <span class="hljs-title">systems</span>.
</span></code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sujeeth &#8211; Kubernetes</title>
		<link>https://www.bestdevops.com/sujeeth-kubernetes/</link>
		
		<dc:creator><![CDATA[SujeethKumarReddy]]></dc:creator>
		<pubDate>Thu, 22 Jul 2021 07:03:42 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18067</guid>

					<description><![CDATA[Assignment#1]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Assignment#1</h2>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-number">1</span>) What are the <span class="hljs-number">10</span> feature <span class="hljs-keyword">of</span> kubernetes?

Storage orchestration
Automated Scheduling
Self-Healing Capabilities
Automated rollouts &amp; rollback
Horizontal Scaling &amp; Load Balancing
Offers environment consistency <span class="hljs-keyword">for</span> development, testing, and production
Infrastructure is loosely coupled to each component can act <span class="hljs-keyword">as</span> a separate unit
Provides a higher density <span class="hljs-keyword">of</span> resource utilization
Application-centric management
Auto-scalable infrastructure

<span class="hljs-number">2</span>) How kubernetes works?

works same <span class="hljs-keyword">as</span> like helmsman , Where it manages the Nodes and PODS.

<span class="hljs-number">3</span>) What are the components <span class="hljs-keyword">of</span> Master?

api-container,load balancer store(etcd), Controller Manager and Scheduler

<span class="hljs-number">4</span>) What are the components <span class="hljs-keyword">of</span> Worker?

kubelet, kube-proxy and container runtime

<span class="hljs-number">5</span>) What are the components <span class="hljs-keyword">of</span> Workstation?

kubectl ,<span class="hljs-built_in">JSON</span>
</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sujeeth &#8211; Docker LAB</title>
		<link>https://www.bestdevops.com/sujeeth-docker-lab/</link>
		
		<dc:creator><![CDATA[SujeethKumarReddy]]></dc:creator>
		<pubDate>Wed, 21 Jul 2021 07:29:08 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17914</guid>

					<description><![CDATA[Install Docker Engine in Centos#1 Vm. Verification : Assignment #1 Assignment #2]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Install Docker Engine in Centos#1 Vm.</h2>


<pre class="wp-block-code"><span><code class="hljs language-php">&#91;root@localhost ~]<span class="hljs-comment">#</span>
<span class="hljs-number">1</span> clear 
<span class="hljs-number">2</span> sudo yum install -y yum-utils device-mapper-persistent-data lvm2 
<span class="hljs-number">3</span> sudo yum-config-manager --add-repo https:<span class="hljs-comment">//download.docker.com/linux/centos/docker-ce.repo </span>
<span class="hljs-number">4</span> sudo yum install –y https:<span class="hljs-comment">//dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm </span>
<span class="hljs-number">5</span> sudo yum-config-manager --enable rhui-REGION-rhel-server-extras 
<span class="hljs-number">6</span> sudo yum install -y docker-ce
</code></span></pre>


<h2 class="wp-block-heading">Verification :</h2>


<pre class="wp-block-code"><span><code class="hljs language-json">&#91;root@&#91;root@localhost ~]# cd
&#91;root@localhost ~]# which dockerd
/bin/dockerd
&#91;root@localhost ~]# which docker
/bin/docker
&#91;root@localhost ~]# ps -eaf | grep dockerd
root <span class="hljs-number">951</span> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">03</span>:<span class="hljs-number">32</span> ? <span class="hljs-number">00</span>:<span class="hljs-number">00</span>:<span class="hljs-number">01</span> /usr/bin/dockerd -H fd:<span class="hljs-comment">// --containerd=/run/containerd/containerd.sock</span>
root <span class="hljs-number">1783</span> <span class="hljs-number">1759</span> <span class="hljs-number">0</span> <span class="hljs-number">05</span>:<span class="hljs-number">00</span> pts/<span class="hljs-number">1</span> <span class="hljs-number">00</span>:<span class="hljs-number">00</span>:<span class="hljs-number">00</span> grep --color=auto dockerd
&#91;root@localhost ~]# which containerd
/bin/containerd
&#91;root@localhost ~]# ps -eaf | grep containerd
root <span class="hljs-number">862</span> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">03</span>:<span class="hljs-number">32</span> ? <span class="hljs-number">00</span>:<span class="hljs-number">00</span>:<span class="hljs-number">06</span> /usr/bin/containerd
root <span class="hljs-number">951</span> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">03</span>:<span class="hljs-number">32</span> ? <span class="hljs-number">00</span>:<span class="hljs-number">00</span>:<span class="hljs-number">01</span> /usr/bin/dockerd -H fd:<span class="hljs-comment">// --containerd=/run/containerd/containerd.sock</span>
root <span class="hljs-number">1787</span> <span class="hljs-number">1759</span> <span class="hljs-number">0</span> <span class="hljs-number">05</span>:<span class="hljs-number">00</span> pts/<span class="hljs-number">1</span> <span class="hljs-number">00</span>:<span class="hljs-number">00</span>:<span class="hljs-number">00</span> grep --color=auto containerd</code></span></pre>


<h2 class="wp-block-heading">Assignment #1</h2>


<pre class="wp-block-code"><span><code class="hljs language-php">&#91;root@localhost ~]<span class="hljs-comment"># docker run -itd ubuntu</span>
<span class="hljs-number">17</span>a7c76b24ad74f3924d683cf9533e041b9bb443d4b8272d86cc13aa98e5a112
&#91;root@localhost ~]<span class="hljs-comment">#</span>
&#91;root@localhost ~]<span class="hljs-comment">#</span>
&#91;root@localhost ~]<span class="hljs-comment">#</span>
&#91;root@localhost ~]<span class="hljs-comment">#</span>
&#91;root@localhost ~]<span class="hljs-comment"># docker ps -a</span>
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES
<span class="hljs-number">17</span>a7c76b24ad   ubuntu    <span class="hljs-string">"bash"</span>    <span class="hljs-number">14</span> seconds ago   Up <span class="hljs-number">13</span> seconds             heuristic_hofstadter


&#91;root@localhost ~]<span class="hljs-comment"># docker attach 17a7c76b24ad</span>


root@<span class="hljs-number">17</span>a7c76b24ad:/<span class="hljs-comment"># apt update</span>
Get:<span class="hljs-number">1</span> http:<span class="hljs-comment">//archive.ubuntu.com/ubuntu focal InRelease &#91;265 kB]</span>
Get:<span class="hljs-number">2</span> http:<span class="hljs-comment">//security.ubuntu.com/ubuntu focal-security InRelease &#91;114 kB]</span>
Get:<span class="hljs-number">3</span> http:<span class="hljs-comment">//archive.ubuntu.com/ubuntu focal-updates InRelease &#91;114 kB]</span>
Get:<span class="hljs-number">4</span> http:<span class="hljs-comment">//archive.ubuntu.com/ubuntu focal-backports InRelease &#91;101 kB]</span>


root@<span class="hljs-number">17</span>a7c76b24ad:/<span class="hljs-comment"># apt install git</span>
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  ca-certificates git-man krb5-locales less libasn1<span class="hljs-number">-8</span>-heimdal libbrotli1 libbsd0 libcbor0<span class="hljs-number">.6</span> libcurl3-gnutls libedit2 liberror-perl libexpat1 libfido2<span class="hljs-number">-1</span>
  libgdbm-compat4 libgdbm6 libgssapi-krb5<span class="hljs-number">-2</span> libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509<span class="hljs-number">-5</span>-heimdal libk5crypto3
  libkeyutils1 libkrb5<span class="hljs-number">-26</span>-heimdal libkrb5<span class="hljs-number">-3</span> libkrb5support0 libldap<span class="hljs-number">-2.4</span><span class="hljs-number">-2</span> libldap-common libnghttp2<span class="hljs-number">-14</span> libperl5<span class="hljs-number">.30</span> libpsl5 libroken18-heimdal librtmp1 libsasl2<span class="hljs-number">-2</span>
  libsasl2-modules libsasl2-modules-db libsqlite3<span class="hljs-number">-0</span> libssh<span class="hljs-number">-4</span> libssl1<span class="hljs-number">.1</span> libwind0-heimdal libx11<span class="hljs-number">-6</span> libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxmuu1 netbase
  openssh-client openssl patch perl perl-modules<span class="hljs-number">-5.30</span> publicsuffix xauth


root@<span class="hljs-number">17</span>a7c76b24ad:/<span class="hljs-comment"># git version</span>
git version <span class="hljs-number">2.25</span><span class="hljs-number">.1</span>



root@<span class="hljs-number">17</span>a7c76b24ad:/<span class="hljs-comment"># apt-get install apache2</span>
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  apache2-bin apache2-data apache2-utils file libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl4 libicu66 libjansson4 liblua5<span class="hljs-number">.2</span><span class="hljs-number">-0</span> libmagic-mgc
  libmagic1 libxml2 mime-support ssl-cert tzdata xz-utils
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser ufw openssl-blacklist
The following <span class="hljs-keyword">NEW</span> packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils file libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl4 libicu66 libjansson4 liblua5<span class="hljs-number">.2</span><span class="hljs-number">-0</span>
  libmagic-mgc libmagic1 libxml2 mime-support ssl-cert tzdata xz-utils
<span class="hljs-number">0</span> upgraded, <span class="hljs-number">20</span> newly installed, <span class="hljs-number">0</span> to remove <span class="hljs-keyword">and</span> <span class="hljs-number">2</span> not upgraded.
Need to get <span class="hljs-number">12.0</span> MB of archives.
After this operation, <span class="hljs-number">55.0</span> MB of additional disk space will be used.
<span class="hljs-keyword">Do</span> you want to <span class="hljs-keyword">continue</span>? &#91;Y/n] y



you need to run this command to <span class="hljs-keyword">exit</span> from ubuntu 
cntrl + p + q with bash

</code></span></pre>


<h2 class="wp-block-heading">Assignment #2</h2>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-attr">&#91;root@localhost ~]</span># <span class="hljs-selector-tag">docker</span> <span class="hljs-selector-tag">run</span> <span class="hljs-selector-tag">-d</span> <span class="hljs-selector-tag">-p</span> 80<span class="hljs-selector-pseudo">:80</span> <span class="hljs-selector-tag">httpd</span>
718<span class="hljs-selector-tag">eeba69e12856953fdd80505eebcea35371849139eb6261bf4957d3e4a8edc</span>
<span class="hljs-selector-attr">&#91;root@localhost ~]</span>#
<span class="hljs-selector-attr">&#91;root@localhost ~]</span>#
<span class="hljs-selector-attr">&#91;root@localhost ~]</span># <span class="hljs-selector-tag">docker</span> <span class="hljs-selector-tag">run</span> <span class="hljs-selector-tag">-d</span> <span class="hljs-selector-tag">-p</span> 8080<span class="hljs-selector-pseudo">:80</span> <span class="hljs-selector-tag">--name</span> <span class="hljs-selector-tag">webserver</span> <span class="hljs-selector-tag">httpd</span>
<span class="hljs-selector-tag">fb24cf429c0bd653f2c7547dc9ef0f6eb7c6e960593171e97886c6cde9f1b3d2</span>
<span class="hljs-selector-attr">&#91;root@localhost ~]</span>#
</code></span></pre>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
