<?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>Vishal-PKS &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/author/vishal-pks/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>Fri, 06 Aug 2021 07:30:14 +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>PCF basic commands &#8211; top15/ Vishal</title>
		<link>https://www.bestdevops.com/pcf-basic-commands-top15-vishal/</link>
		
		<dc:creator><![CDATA[Vishal-PKS]]></dc:creator>
		<pubDate>Fri, 06 Aug 2021 07:30:12 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18782</guid>

					<description><![CDATA[cf apicf logincf logoutcf targetcf appscf appcf pppush -f -pcf scale app_namecf delete app_name -rcf rename app_name new_namecf start app_namecf [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">cf api<br>cf login<br>cf logout<br>cf target<br>cf apps<br>cf app<br>cf pppush -f -p<br>cf scale app_name<br>cf delete app_name -r<br>cf rename app_name new_name<br>cf start app_name<br>cf restart app_name<br>cf stop app_name<br>cf logs app_name<br>cf env app_name</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Certificate based Authentication in k8s-Vishal</title>
		<link>https://www.bestdevops.com/certificate-based-authentication-in-k8s-vishal/</link>
		
		<dc:creator><![CDATA[Vishal-PKS]]></dc:creator>
		<pubDate>Fri, 30 Jul 2021 03:25:31 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18548</guid>

					<description><![CDATA[How certificate based Authentication works? explain in kubernetes context A: User/administrator generates a&#160;certificate signing request (CSR). Administrator approves the request [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">How certificate based Authentication works? explain in kubernetes context</p>



<p class="wp-block-paragraph">A: User/administrator generates a&nbsp;<strong>certificate signing request (CSR)</strong>. Administrator approves the request and signs it with their CA. Administrator provides the resulting certificate back to the user. User presents their key and certificate pair to prove their identity.</p>



<p class="wp-block-paragraph">Admin creates private key &#8211;&gt; which is later converts into csr&#8211;&gt; Admin later take this csr file and create .crt file.</p>



<p class="wp-block-paragraph">.crt file can be downloaded by user using csr api to confirm identity. </p>



<p class="wp-block-paragraph"><br>What is Block Storage?</p>



<p class="wp-block-paragraph">Block storage is a storage scheme in which each volume acts as a separate hard drive, configured by the storage administrator. Data is stored in fixed-size blocks. A unique address serves as the metadata describing each block.</p>



<p class="wp-block-paragraph"><br>How volume plugins in kubernetes works?</p>



<p class="wp-block-paragraph">Volumes&nbsp;<strong>offer storage shared between all containers in a Pod</strong>. This allows you to reliably use the same mounted file system with multiple services running in the same Pod. As long as the Pod is active, the volume is there, too. However, when you restart the Pod, the volume gets reset.</p>



<p class="wp-block-paragraph">Create pv.yaml, pvc.yaml (to claim volume), pod.yaml</p>



<p class="wp-block-paragraph"><br>What is StorageClass? and How to work with it with sample StorageClass, PV, PVC, POD.ymal</p>



<p class="wp-block-paragraph">A&nbsp;<em>PersistentVolume</em>&nbsp;(PV) is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using&nbsp;<a href="https://kubernetes.io/docs/concepts/storage/storage-classes/">Storage Classes</a>. It is a resource in the cluster just like a node is a cluster resource. PVs are volume plugins like Volumes, but have a lifecycle independent of any individual Pod that uses the PV. This API object captures the details of the implementation of the storage, be that NFS, iSCSI, or a cloud-provider-specific storage system.</p>



<p class="wp-block-paragraph">Ex.</p>


<pre class="wp-block-code"><span><code class="hljs">- awsElasticBlockStore - AWS Elastic Block Store (EBS)
- azureDisk - Azure Disk
- azureFile - Azure File
- cephfs - CephFS volume
- cinder - Cinder (OpenStack block storage) (deprecated)
- csi - Container Storage Interface (CSI)
- fc - Fibre Channel (FC) storage
- flexVolume - FlexVolume
- flocker - Flocker storage
- gcePersistentDisk - GCE Persistent Disk
- glusterfs - Glusterfs volume
- hostPath - HostPath volume (for single node testing only; WILL NOT WORK in a multi-node cluster; consider using local volume instead)
- iscsi - iSCSI (SCSI over IP) storage
- local - local storage devices mounted on nodes.
- nfs - Network File System (NFS) storage
- photonPersistentDisk - Photon controller persistent disk. (This volume type no longer works since the removal of the corresponding - cloud provider.)
- portworxVolume - Portworx volume
- quobyte - Quobyte volume
- rbd - Rados Block Device (RBD) volume
- scaleIO - ScaleIO volume (deprecated)
- storageos - StorageOS volume
- vsphereVolume - vSphere VMDK volume</code></span></pre>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Assignment for Kubernetes ReplicasSets, DeamonSets &#038; Statefulsets, &#038; Services &#8211; by Vishal</title>
		<link>https://www.bestdevops.com/assignment-for-kubernetes-replicassets-deamonsets-statefulsets-services-by-vishal/</link>
		
		<dc:creator><![CDATA[Vishal-PKS]]></dc:creator>
		<pubDate>Tue, 27 Jul 2021 18:26:06 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18504</guid>

					<description><![CDATA[Assignment – 1 What is ReplicasSets? A: A ReplicaSet ensures that a specified number of pod replicas are running at [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Assignment – 1<br><br>What is ReplicasSets?</p>



<p class="wp-block-paragraph">A: A ReplicaSet ensures that a specified number of pod replicas are running at any given time. <br>How to work with ReplicasSets?</p>



<p class="wp-block-paragraph">A: A ReplicaSet is linked to its Pods via the Pods&#8217; <a href="https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/#owners-and-dependents">metadata.ownerReferences</a> field, which specifies what resource the current object is owned by. All Pods acquired by a ReplicaSet have their owning ReplicaSet&#8217;s identifying information within their ownerReferences field. It&#8217;s through this link that the ReplicaSet knows of the state of the Pods it is maintaining and plans accordingly.<br>Example of ReplicasSets?</p>



<p class="wp-block-paragraph">apiVersion: apps/v1<br>kind: ReplicaSet<br>metadata:<br>name: frontend<br>labels:<br>app: guestbook<br>tier: frontend<br>spec:<br># modify replicas according to your case<br>replicas: 3<br>selector:<br>matchLabels:<br>tier: frontend<br>template:<br>metadata:<br>labels:<br>tier: frontend<br>spec:<br>containers:<br>&#8211; name: php-redis<br>image: gcr.io/google_samples/gb-frontend:v3</p>



<p class="wp-block-paragraph">Assignment – 2<br><br>What is DeamonSets?</p>



<p class="wp-block-paragraph">A <em>DaemonSet</em> ensures that all (or some) Nodes run a copy of a Pod. As nodes are added to the cluster, Pods are added to them. As nodes are removed from the cluster, those Pods are garbage collected. Deleting a DaemonSet will clean up the Pods it created.</p>



<p class="wp-block-paragraph"><br>How to work with DeamonSets?</p>



<p class="wp-block-paragraph">You can describe a DaemonSet in a YAML file. For example, the <code>daemonset.yaml</code> file below describes a DaemonSet that runs the fluentd-elasticsearch Docker image:</p>



<p class="wp-block-paragraph">Example of DeamonSets?</p>



<p class="wp-block-paragraph">apiVersion: apps/v1<br>kind: DaemonSet<br>metadata:<br>name: fluentd-elasticsearch<br>namespace: kube-system<br>labels:<br>k8s-app: fluentd-logging<br>spec:<br>selector:<br>matchLabels:<br>name: fluentd-elasticsearch<br>template:<br>metadata:<br>labels:<br>name: fluentd-elasticsearch<br>spec:<br>tolerations:<br># this toleration is to have the daemonset runnable on master nodes<br># remove it if your masters can&#8217;t run pods<br>&#8211; key: node-role.kubernetes.io/master<br>operator: Exists<br>effect: NoSchedule<br>containers:<br>&#8211; name: fluentd-elasticsearch<br>image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2<br>resources:<br>limits:<br>memory: 200Mi<br>requests:<br>cpu: 100m<br>memory: 200Mi<br>volumeMounts:<br>&#8211; name: varlog<br>mountPath: /var/log<br>&#8211; name: varlibdockercontainers<br>mountPath: /var/lib/docker/containers<br>readOnly: true<br>terminationGracePeriodSeconds: 30<br>volumes:<br>&#8211; name: varlog<br>hostPath:<br>path: /var/log<br>&#8211; name: varlibdockercontainers<br>hostPath:<br>path: /var/lib/docker/containers</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Assignment – 3<br><br>What is Statefulsets?</p>



<p class="wp-block-paragraph">StatefulSet is the workload API object used to manage stateful applications.</p>



<p class="wp-block-paragraph">Manages the deployment and scaling of a set of <a href="https://kubernetes.io/docs/concepts/workloads/pods/" target="_blank" rel="noreferrer noopener">Pods</a>, <em>and provides guarantees about the ordering and uniqueness</em> of these Pods.</p>



<p class="wp-block-paragraph"><br>How to work with Statefulsets?</p>



<p class="wp-block-paragraph">Like a <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" target="_blank" rel="noreferrer noopener">Deployment</a>, a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling.</p>



<p class="wp-block-paragraph"><br>Example of Statefulsets?</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>apiVersion<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: v1
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>kind<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: Service
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>metadata<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: nginx
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>labels<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>app<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: nginx
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>spec<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>ports<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  - <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>port<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 80
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: web
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>clusterIP<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: None
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>selector<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>app<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: nginx
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>---<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>apiVersion<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: apps/v1
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>kind<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: StatefulSet
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>metadata<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: web
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>spec<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>selector<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>matchLabels<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>app<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: nginx <span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span># has to match .spec.template.metadata.labels<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>serviceName<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: "nginx"
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>replicas<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 3 <span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span># by default is 1<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>template<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>metadata<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>labels<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
        <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>app<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: nginx <span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span># has to match .spec.selector.matchLabels<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>spec<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>terminationGracePeriodSeconds<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 10
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>containers<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
      - <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: nginx
        <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>image<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: k8s.gcr.io/nginx-slim:0.8
        <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>ports<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
        - <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>containerPort<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 80
          <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: web
        <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>volumeMounts<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
        - <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: www
          <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>mountPath<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: /usr/share/nginx/html
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>volumeClaimTemplates<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  - <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>metadata<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: www
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>spec<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>accessModes<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: &#91; "ReadWriteOnce" ]
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>storageClassName<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: "my-storage-class"
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>resources<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
        <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>requests<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
          <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>storage<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 1Gi
</code></span></pre>


<p class="wp-block-paragraph">Assignment – 4<br>What is Service?</p>



<p class="wp-block-paragraph">An abstract way to expose an application running on a set of <a href="https://kubernetes.io/docs/concepts/workloads/pods/" target="_blank" rel="noreferrer noopener">Pods</a> as a network service.</p>



<p class="wp-block-paragraph"><br>How Service Works?</p>



<p class="wp-block-paragraph">Kubernetes&nbsp;<a href="https://kubernetes.io/docs/concepts/workloads/pods/" target="_blank" rel="noreferrer noopener">Pods</a>&nbsp;are created and destroyed to match the state of your cluster. Pods are nonpermanent resources. If you use a&nbsp;<a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" target="_blank" rel="noreferrer noopener">Deployment</a>&nbsp;to run your app, it can create and destroy Pods dynamically.</p>



<p class="wp-block-paragraph">Each Pod gets its own IP address, however in a Deployment, the set of Pods running in one moment in time could be different from the set of Pods running that application a moment later.</p>



<p class="wp-block-paragraph">This leads to a problem: if some set of Pods (call them &#8220;backends&#8221;) provides functionality to other Pods (call them &#8220;frontends&#8221;) inside your cluster, how do the frontends find out and keep track of which IP address to connect to, so that the frontend can use the backend part of the workload?</p>



<p class="wp-block-paragraph"><br>What are the types of Service?</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>apiVersion<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: v1
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>kind<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: Service
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>metadata<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>name<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: my-service
<span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>spec<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>selector<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
    <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>app<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: MyApp
  <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>ports<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>:
    - <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>protocol<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: TCP
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>port<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 80
      <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>targetPort<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>: 9376</code></span></pre>


<p class="wp-block-paragraph"><br>Example Yaml of Service</p>



<p class="wp-block-paragraph">Assigment5<br>What is Loadbalancer?</p>



<p class="wp-block-paragraph">ItsA load balancer is a <strong>device / component that acts as a reverse proxy and distributes network or application traffic across a</strong> number of servers.</p>



<p class="wp-block-paragraph"><br>What are the types of Loadbalancer?</p>



<p class="wp-block-paragraph">Network</p>



<p class="wp-block-paragraph">Application loadbalancer</p>



<p class="wp-block-paragraph"><br>How Loadbalancer works?</p>



<p class="wp-block-paragraph">The former default kube-proxy mode was userspace, which allocates the next available Kubernetes pod using round-robin load distribution on an IP list, and then rotates or otherwise permutes the list. Modern kube-proxy default mode, called iptables, enables sophisticated rule-based IP management. In iptables mode, random selection is the native method for load distribution. In this situation, an incoming request goes to one of a service’s pods that is randomly chosen</p>



<p class="wp-block-paragraph">Assigment6<br>What is Discovery Services?</p>



<p class="wp-block-paragraph"><br>Service discovery is <strong>the automatic detection of devices and services offered by these devices on a computer network</strong>. A service discovery protocol (SDP) is a network protocol that helps accomplish service discovery. Service discovery aims to reduce the configuration efforts required by users and administrators.</p>



<p class="wp-block-paragraph"><br>How Discovery Services works?</p>



<p class="wp-block-paragraph">Server-side service discovery <strong>allows clients applications to find services through a router or a load balancer</strong>. 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.</p>



<p class="wp-block-paragraph"><br>What is CoreDNS?</p>



<p class="wp-block-paragraph"><a href="https://coredns.io/">CoreDNS</a> is a flexible, extensible DNS server that can serve as the Kubernetes cluster DNS. Like Kubernetes, the CoreDNS project is hosted by the <a href="https://cncf.io/" target="_blank" rel="noreferrer noopener">CNCF</a>.</p>



<p class="wp-block-paragraph"><br>Use of CoreDNS?</p>



<p class="wp-block-paragraph">The CoreDNS service <strong>pods are deployed on the same master node</strong>. When the node is lost, the DNS service is down on the cluster until the pod eviction timeout expires.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Day4- Assignment-vishal- Kubernetes basics</title>
		<link>https://www.bestdevops.com/day4-assignment-vishal/</link>
		
		<dc:creator><![CDATA[Vishal-PKS]]></dc:creator>
		<pubDate>Thu, 22 Jul 2021 06:54:52 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=18071</guid>

					<description><![CDATA[What are the 10 feature of kubernetes? &#8211; &#160;optimizes the utilization of resources like CPU and memory through containers allow [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">What are the 10 feature of kubernetes? &#8211;</p>



<ol class="wp-block-list"><li> &nbsp;optimizes the utilization of resources like CPU and memory through containers</li><li>allow for efficient distributions of applications across a cluster of nodes</li><li>Its a tool or platform which focuses on deploying and scheduling containers inside the infrastructure instead of directly utilizing nodes/hosts.</li><li>Container grouping using pod</li><li>Self-healing</li><li>Auto-scalablility</li><li>DNS management</li><li>Load balancing</li><li>Rolling update or rollback</li><li>Resource monitoring and logging</li></ol>



<p class="wp-block-paragraph">How kubernetes works? &#8211; </p>



<p class="wp-block-paragraph">Kubernetes&nbsp;<strong>keeps track of your container applications that are deployed into the cloud</strong>. It restarts orphaned containers, shuts down containers when they&#8217;re not being used, and automatically provisions resources like memory, storage, and CPU when necessary</p>



<p class="wp-block-paragraph">What are the components of Master? explain in one line sentense &#8211; </p>



<p class="wp-block-paragraph">Cluster store, controller, apiserver</p>



<p class="wp-block-paragraph">What are the components of Worker? explain in one line sentense &#8211; </p>



<p class="wp-block-paragraph">pod, docker, kublet, kube-proxy</p>



<p class="wp-block-paragraph">What are the components of Workstation? explain in one line</p>



<p class="wp-block-paragraph">control plane, kube-apiserver, scheduler, controller manager, etcd, node, load balancer</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Docker push image Lab3- Vishal Aswar</title>
		<link>https://www.bestdevops.com/docker-push-image-lab3-vishal-aswar/</link>
		
		<dc:creator><![CDATA[Vishal-PKS]]></dc:creator>
		<pubDate>Wed, 21 Jul 2021 08:59:15 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17983</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://hub.docker.com/repository/docker/vishalaswar/vishal-pks
</div></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lab1- Vishal Aswar</title>
		<link>https://www.bestdevops.com/lab1-vishal-aswar/</link>
		
		<dc:creator><![CDATA[Vishal-PKS]]></dc:creator>
		<pubDate>Wed, 21 Jul 2021 05:56:05 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=17868</guid>

					<description><![CDATA[pause Pause all processes within one or more containersport List port mappings or a specific mapping for the containerps List [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">pause Pause all processes within one or more containers<br>port List port mappings or a specific mapping for the container<br>ps List containers<br>pull Pull an image or a repository from a registry<br>push Push an image or a repository to a registry<br>rename Rename a container<br>restart Restart one or more containers<br>rm Remove one or more containers<br>rmi Remove one or more images<br>run Run a command in a new container<br>save Save one or more images to a tar archive (streamed to STDOUT by default)<br>search Search the Docker Hub for images<br>start Start one or more stopped containers<br>stats Display a live stream of container(s) resource usage statistics<br>stop Stop one or more running containers<br>tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE<br>top Display the running processes of a container<br>unpause Unpause all processes within one or more containers<br>update Update configuration of one or more containers<br>version Show the Docker version information<br>wait Block until one or more containers stop, then print their exit codes</p>



<p class="wp-block-paragraph">Run &#8216;docker COMMAND &#8211;help&#8217; for more information on a command.</p>



<p class="wp-block-paragraph">[root@ip-172-31-10-74 centos]# clear<br>[root@ip-172-31-10-74 centos]# docker ps<br>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br>[root@ip-172-31-10-74 centos]# docker info<br>Containers: 0<br>Running: 0<br>Paused: 0<br>Stopped: 0<br>Images: 0<br>Server Version: 1.13.1<br>Storage Driver: overlay2<br>Backing Filesystem: xfs<br>Supports d_type: true<br>Native Overlay Diff: true<br>Logging Driver: journald<br>Cgroup Driver: systemd<br>Plugins:<br>Volume: local<br>Network: bridge host macvlan null overlay<br>Swarm: inactive<br>Runtimes: docker-runc runc<br>Default Runtime: docker-runc<br>Init Binary: /usr/libexec/docker/docker-init-current<br>containerd version: (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)<br>runc version: 66aedde759f33c190954815fb765eedc1d782dd9 (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)<br>init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)<br>Security Options:<br>seccomp<br>WARNING: You&#8217;re not using the default seccomp profile<br>Profile: /etc/docker/seccomp.json<br>selinux<br>Kernel Version: 3.10.0-1062.12.1.el7.x86_64<br>Operating System: CentOS Linux 7 (Core)<br>OSType: linux<br>Architecture: x86_64<br>Number of Docker Hooks: 3<br>CPUs: 1<br>Total Memory: 1.793 GiB<br>Name: ip-172-31-10-74.ap-south-1.compute.internal<br>ID: 6W44:M6T7:AYLW:CPEG:24TO:HGF5:4DSJ:DIJW:GNRT:S5XF:IJGN:DEA3<br>Docker Root Dir: /var/lib/docker<br>Debug Mode (client): false<br>Debug Mode (server): false<br>Registry: https://index.docker.io/v1/<br>Experimental: false<br>Insecure Registries:<br>127.0.0.0/8<br>Live Restore Enabled: false<br>Registries: docker.io (secure)<br>[root@ip-172-31-10-74 centos]# docker pull ubuntu<br>Using default tag: latest<br>Trying to pull repository docker.io/library/ubuntu …<br>latest: Pulling from docker.io/library/ubuntu<br>a31c7b29f4ad: Pull complete<br>Digest: sha256:b3e2e47d016c08b3396b5ebe06ab0b711c34e7f37b98c9d37abe794b71cea0a2<br>Status: Downloaded newer image for docker.io/ubuntu:latest<br>[root@ip-172-31-10-74 centos]#</p>



<p class="wp-block-paragraph">[root@ip-172-31-10-74 centos]# ps -eaf | grep dockerd<br>root 19653 1 0 05:12 ? 00:00:02 /usr/bin/dockerd-current &#8211;add-runtime docker-runc=/usr/libexec/docker/docker-runc-current &#8211;default-runtime=docker-runc &#8211;exec-opt native.cgroupdriver=systemd &#8211;userland-proxy-path=/usr/libexec/docker/docker-proxy-current &#8211;init-path=/usr/libexec/docker/docker-init-current &#8211;seccomp-profile=/etc/docker/seccomp.json &#8211;selinux-enabled &#8211;log-driver=journald &#8211;signature-verification=false &#8211;storage-driver overlay2<br>root 28359 1481 0 05:27 pts/0 00:00:00 grep &#8211;color=auto dockerd<br>[root@ip-172-31-10-74 centos]#</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
