<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sangam Biradar </title>
    <description>The latest articles on DEV Community by Sangam Biradar  (@sangam14).</description>
    <link>https://dev.to/sangam14</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F96224%2Facd1cbfb-e170-48fc-83eb-c78112455507.jpeg</url>
      <title>DEV Community: Sangam Biradar </title>
      <link>https://dev.to/sangam14</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sangam14"/>
    <language>en</language>
    <item>
      <title>Golang for Beginners </title>
      <dc:creator>Sangam Biradar </dc:creator>
      <pubDate>Tue, 22 Dec 2020 10:56:55 +0000</pubDate>
      <link>https://dev.to/collabnixcommunity/golang-for-beginners-3c85</link>
      <guid>https://dev.to/collabnixcommunity/golang-for-beginners-3c85</guid>
      <description>&lt;p&gt;&lt;a href="https://discord.com/invite/S3GtFvT" rel="noopener noreferrer"&gt;join Gopherlabs Community&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-- TABLE OF CONTENTS --&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/hello-world.html" rel="noopener noreferrer"&gt;Lets Start With First Hello world Program&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Decimal.html" rel="noopener noreferrer"&gt;Numeral Systems - Decimal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/binary_go.html" rel="noopener noreferrer"&gt;Numeral systems - binary&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Hexadecimal.html" rel="noopener noreferrer"&gt;Numeral systems - hexadecimal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/UTF-8.html" rel="noopener noreferrer"&gt;Numeral Systems Loop&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/UTF-8.html" rel="noopener noreferrer"&gt;Numeral Systems - UTF-8&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Short_variable_declarations.html" rel="noopener noreferrer"&gt;Short variable declarations&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/variable_with_zero_value.html" rel="noopener noreferrer"&gt;variable with zero value&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Deep_Drive_variable.html" rel="noopener noreferrer"&gt;deep drive on variables&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/deep_drive_Constants.html" rel="noopener noreferrer"&gt;deep drive on Constants&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Loop_nit_Condition_Post.html" rel="noopener noreferrer"&gt;Loop - Init, Condition, Post&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/NestedLoop.html" rel="noopener noreferrer"&gt;Loop - Nested Loops&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/loop_for_statement.html" rel="noopener noreferrer"&gt;Loop - For Statement&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Loop_Break_Continue.html" rel="noopener noreferrer"&gt;Loop - Break &amp;amp; Continue&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/random_number_crypto.html" rel="noopener noreferrer"&gt;Generate Random number with math/crypto/rand in Go&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/loop_Printing_ASCII.html" rel="noopener noreferrer"&gt;Loop - Printing ASCII&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Conditional_If_Statement.html" rel="noopener noreferrer"&gt;Conditional - If Statement&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/conditional-if-else_statement.html" rel="noopener noreferrer"&gt;Conditional - If, Else if, Else&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Loop_Conditional_Modulus.html" rel="noopener noreferrer"&gt;Loop, Conditional, Modulus&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Conditional_Switch_Statement.html" rel="noopener noreferrer"&gt;Conditional - Switch Statement&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Conditional_Switch_Statement_Documentation.html" rel="noopener noreferrer"&gt;Conditional - Switch Statement Documentation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Conditional_Logic_Operators.html" rel="noopener noreferrer"&gt;Conditional Logic Operators&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/String_Type.html" rel="noopener noreferrer"&gt;String Type&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/BoolType.html" rel="noopener noreferrer"&gt;Bool Type&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Structs.html" rel="noopener noreferrer"&gt;Structs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/struct_literal.html" rel="noopener noreferrer"&gt;struct literal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Pointers_to_structs.html" rel="noopener noreferrer"&gt;Struct fields can be accessed through a struct pointer.&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Conversion_Not_Casting.html" rel="noopener noreferrer"&gt;Conversion, Not Casting&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Creating_Your_Own_Type.html" rel="noopener noreferrer"&gt;Creating Your Own Type&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Defer_go.html" rel="noopener noreferrer"&gt;Defer&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/stacking_defers.html" rel="noopener noreferrer"&gt;Stacking defers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/pointer_golang.html" rel="noopener noreferrer"&gt;Pointers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Prefix_Suffix.html" rel="noopener noreferrer"&gt;Prefix Suffix&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Conversion_between_array_and_slice.html" rel="noopener noreferrer"&gt;Conversion between array and slice&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/what_is_methods.html" rel="noopener noreferrer"&gt;Methods&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Go_Variadic_functions.html" rel="noopener noreferrer"&gt;variadic function&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/Init_Func.html" rel="noopener noreferrer"&gt;init Function&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/CLI_File_Arg.html" rel="noopener noreferrer"&gt;Command Line Arguments and File I/O&lt;/a&gt;&lt;br&gt;
&lt;a href="https://gopherlabs.kubedaily.com/Beginners/interface_Go.html" rel="noopener noreferrer"&gt;interface&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Support this repo by gitstart &lt;br&gt;
&lt;a href="https://github.com/sangam14/GopherLabs" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-readme-stats.vercel.app%2Fapi%2Fpin%2F%3Fusername%3Dsangam14%26repo%3DGopherLabs" alt="ReadMe Card"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>labs</category>
      <category>resources</category>
    </item>
    <item>
      <title> Nitty-Gritty of AWS IAM</title>
      <dc:creator>Sangam Biradar </dc:creator>
      <pubDate>Tue, 22 Dec 2020 10:48:41 +0000</pubDate>
      <link>https://dev.to/collabnixcommunity/aws-identity-and-access-management-iam-47p2</link>
      <guid>https://dev.to/collabnixcommunity/aws-identity-and-access-management-iam-47p2</guid>
      <description>&lt;h1&gt;
  
  
  Identity and Access Management (IAM)
&lt;/h1&gt;

&lt;p&gt;● The key features of IAM:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared Access to your Account 
&lt;/li&gt;
&lt;li&gt;Granular Permissions
&lt;/li&gt;
&lt;li&gt;Secure Access to AWS Resources
&lt;/li&gt;
&lt;li&gt;Identity Federation
&lt;/li&gt;
&lt;li&gt;Identity Information for Assurance
&lt;/li&gt;
&lt;li&gt;Payment Card Industry (PCI) Data Security Standard (DSS) Compliance
&lt;/li&gt;
&lt;li&gt;Password Policy
&lt;/li&gt;
&lt;li&gt;Multi Factor Authentication (MFA)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;●  Shared access to your AWS account&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grant permission to users to access and use resources in your AWS account without sharing your password.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;● Granular Permissions&lt;/p&gt;
&lt;h4&gt;
  
  
  Granular permissions allow different permissions to various users to manage their access to AWS, such as:&lt;br&gt;
&lt;/h4&gt;

&lt;p&gt;• User access to specific services&lt;br&gt;&lt;br&gt;
• Specific permissions for actions&lt;br&gt;&lt;br&gt;
• Specific access to resources&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Secure Access
&lt;/h2&gt;
&lt;h4&gt;
  
  
  Securely allocate credentials that applications on EC2 instances require to access other AWS resources.&lt;br&gt;
&lt;/h4&gt;
&lt;h2&gt;
  
  
  Identity Federation
&lt;/h2&gt;

&lt;p&gt;● Allows users with external accounts to get temporary access to AWS resources&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Identity Information
&lt;/h2&gt;

&lt;p&gt;● Log, monitor, and track what users are doing with your AWS resources.&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  PCI DSS Compliance
&lt;/h2&gt;

&lt;p&gt;● Payment Card Industry (PCI) and Data Security Standard (DSS) compliant&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Multi-Factor Authentication
&lt;/h2&gt;

&lt;p&gt;● Two-Factor Authorization for users and resources to ensure absolute security using MFA devices&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Password Policy
&lt;/h2&gt;

&lt;p&gt;● IAM allows you to define password strength and rotation policies.&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  IAM Policies
&lt;/h2&gt;

&lt;p&gt;● A document that defines one or more permissions&lt;br&gt;&lt;br&gt;
● Attached to users, groups, and roles&lt;br&gt;&lt;br&gt;
● Written in JavaScript Object Notation (JSON)&lt;br&gt;&lt;br&gt;
● Selected from a pre-defined AWS list of policies, or you can create your own policy&lt;br&gt;&lt;/p&gt;

&lt;p&gt;## AWS Policies&lt;br&gt;
● AWS has many predefined policies which allow you to define granular access to AWS resources.&lt;br&gt;&lt;br&gt;
● There are around 200 predefined policies available for you to choose from.&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  AdministratorAccess Policy
&lt;/h2&gt;

&lt;p&gt;● AdministratorAccess policy provides full access to AWS services and resources.&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  AmazonEC2FullAccess Policy
&lt;/h2&gt;

&lt;p&gt;● AmazonEC2FullAccess policy provides AWS Directory Service user or groups full access to the Amazon EC2 services and resources&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  AmazonS3ReadOnlyAccess Policy
&lt;/h2&gt;

&lt;p&gt;● AmazonS3ReadOnlyAccess policy provides read-only access to all buckets using the AWS Management Console&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  JSON
&lt;/h2&gt;

&lt;p&gt;● AWS policies are written using JavaScript Object Notation (JSON).&lt;br&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:listbucket",
    "Resource": "arn:aws:s3:::example_s3_bucket"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Policy-wide information:&lt;br&gt;&lt;br&gt;
Version–Date this policy was created&lt;br&gt;&lt;/p&gt;

&lt;p&gt;One or more individual statements:&lt;br&gt;&lt;br&gt;
Effect–Allow permission&lt;br&gt;&lt;br&gt;
Action– 3 list bucket &lt;br&gt;&lt;br&gt;
Resource–Name of the S3 bucket&lt;br&gt;&lt;/p&gt;

&lt;p&gt;## IAM Users&lt;br&gt;
 Users are defined as the people or systems that use your AWS resources. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;## Security Credentials&lt;br&gt;
 AWS provides numerous ways to provide secure user access to your AWS resources: &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Key pairs: &lt;br&gt;&lt;br&gt;
• They consist of a public and private key &lt;br&gt;&lt;br&gt;
• A private key is used to create a digital signature &lt;br&gt;&lt;br&gt;
• AWS uses the corresponding public key to validate the signature &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Email address and password &lt;br&gt;&lt;br&gt;
• They are created when you sign up to use AWS &lt;br&gt;&lt;br&gt;
• They are used to sign in to AWS web pages &lt;br&gt;&lt;/p&gt;

&lt;p&gt;IAM user name and password &lt;br&gt;&lt;br&gt;
• They allow multiple individuals or applications access to your AWS account &lt;br&gt;&lt;br&gt;
• Individuals use their user names and passwords to sign in &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Multi-Factor Authentication (MFA) &lt;br&gt;&lt;br&gt;
• With AWS MFA enabled, users are prompted for a user name and password and for an authentication code from an MFA device &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Access keys &lt;br&gt;&lt;br&gt;
• They consist of an access key and a secret access key &lt;br&gt;&lt;br&gt;
• They use access keys to sign programmatic requests &lt;br&gt;&lt;/p&gt;

&lt;p&gt;## IAM Groups&lt;br&gt;
 ● AWS defines a group as a collection of users that inherit the same set of permissions. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;## IAM Roles&lt;/p&gt;

&lt;p&gt;IAM Roles are: &lt;br&gt;&lt;br&gt;
• Very similar to users &lt;br&gt;&lt;br&gt;
• Not password protected and do not require access keys &lt;br&gt;&lt;br&gt;
• AWS identities with permission policies that determine the access available to the identities &lt;br&gt;&lt;br&gt;
• Assumed by anyone who requires them &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create Individual IAM Users &lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;• The benefits of creating individual IAM users: &lt;br&gt;&lt;br&gt;
• Control permissions at an individual level &lt;br&gt;&lt;br&gt;
• No shared accounts &lt;br&gt;&lt;br&gt;
• Unique credentials for everyone &lt;br&gt;&lt;br&gt;
• Easier to rotate credentials &lt;br&gt;&lt;br&gt;
• Easier to identify security breaches &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grant Least Privilege
&lt;/h2&gt;

&lt;p&gt;When creating IAM policies, granting ”least privilege,” means that: &lt;br&gt;&lt;br&gt;
• You only grant required permissions &lt;br&gt;&lt;br&gt;
• It's more secure to start with minimum permissions &lt;br&gt;&lt;br&gt;
• It’s easier to grant permissions than revoke them &lt;br&gt;&lt;br&gt;
• You protect your assets &lt;br&gt;&lt;/p&gt;

&lt;p&gt;## Manage Permissions with Groups&lt;br&gt;
 Use permissions with groups to minimize the workload  &lt;br&gt;&lt;br&gt;
 Easy to assign new permissions &lt;br&gt;&lt;br&gt;
• It is easier to assign a new permission to a group than to assign it to many individual users. &lt;br&gt;&lt;br&gt;
  Simple to reassign permissions  &lt;br&gt;&lt;br&gt;
• It is simpler to reassign permissions if a user has a change in responsibilities. &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Restrict Access with Further Conditions
&lt;/h2&gt;

&lt;p&gt;• Use additional conditions such as MFA and Security Groups to ensure only the intended users get access. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;## Monitor Activity in your AWS Account &lt;br&gt;
  AWS has several features to log user actions.  &lt;br&gt;&lt;br&gt;
• Logs &lt;br&gt;&lt;br&gt;
• AWS Cloudtrail &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a Strong Password Policy
&lt;/h2&gt;

&lt;p&gt;• Ensure that all your users have strong passwords and they rotate their passwords regularly. &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Roles for Applications that run on EC2
&lt;/h2&gt;

&lt;p&gt;• IAM Roles remove the need for your developers to store or pass credentials to AWS EC2. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;## Reduce or Remove Unnecessary Credentials&lt;br&gt;
• To reduce the potential for misuse, run a credential report to identify users that are no longer in use and can be removed. &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS Security Token Service (STS)
&lt;/h1&gt;

&lt;p&gt;• It is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management users that you authenticate.&lt;br&gt;
 &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STS: Things To Remember
&lt;/h2&gt;

&lt;p&gt;• Develop an Identity Broker to communicate with LDAP and AWS STS &lt;br&gt;&lt;br&gt;
• Identity Broker always authenticates with LDAP first and then AWS STS &lt;br&gt;&lt;br&gt;
• Application gets temporary access to AWS resources &lt;br&gt;&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>MULTIPASS + MICROK8 + Grafana On MACOSX</title>
      <dc:creator>Sangam Biradar </dc:creator>
      <pubDate>Tue, 19 Feb 2019 00:00:00 +0000</pubDate>
      <link>https://dev.to/collabnixcommunity/multipass-microk8-grafana-on-macosx-5f8o</link>
      <guid>https://dev.to/collabnixcommunity/multipass-microk8-grafana-on-macosx-5f8o</guid>
      <description>&lt;h1&gt;
  
  
  MULTIPASS + MICROK8 + Grafana On MACOSX
&lt;/h1&gt;

&lt;p&gt;Multipass is a system that orchestrates the creation, management and maintenance of Virtual Machines and associated Ubuntu images to simplify development. MicroK8s is a local deployment of Kubernetes. Let’s skip all the technical details and just accept that Kubernetes does not run natively on MacOS or Windows. You may be thinking “I have seen Kubernetes running on a MacOS laptop, what kind of sorcery was that?” It’s simple, Kubernetes is running inside a VM. You might not see the VM or it might not even be a full blown virtual system but some level of virtualisation is there. This is exactly what we will show here.&lt;/p&gt;

&lt;p&gt;Under this tutorial, we will setup a VM using Multipass and will showcase how to install MicroK8s. After the installation we will discuss how to build appalication stack using K8s. Let’s get started:&lt;/p&gt;

&lt;h1&gt;
  
  
  Download Multipass VM &lt;a href="https://github.com/CanonicalLtd/multipass/releases"&gt;https://github.com/CanonicalLtd/multipass/releases&lt;/a&gt;
&lt;/h1&gt;

&lt;h1&gt;
  
  
  A multipass VM on MacOS
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Biradars-MacBook-Air:~ sangam$ multipass launch --name microk8s-vm --mem 4G --disk 40G
Launched: microk8s-vm                                                           
Biradars-MacBook-Air:~ sangam$ multipass exec microk8s-vm -- sudo snap install microk8s --classic
multipass exec microk8s-vm -- sudo iptables -P FORWARD ACCEPT
2019-02-19T18:13:52+05:30 INFO Waiting for restart...
microk8s v1.13.2 from Canonical✓ installed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure you reserve enough resources to host your deployments; above, we got 4GB of RAM and 40GB of hard disk. We also make sure packets to/from the pod network interface can be forwarded to/from the default interface.&lt;/p&gt;

&lt;h1&gt;
  
  
  Our VM has an IP that you can check with:
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Biradars-MacBook-Air:~ sangam$ multipass list
Name State IPv4 Release
microk8s-vm RUNNING 192.168.64.3 Ubuntu 18.04 LTS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Take a note of this IP since our services will become available there. Other multipass commands you may find handy:&lt;/p&gt;

&lt;h1&gt;
  
  
  Get a shell inside the VM:
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Biradars-MacBook-Air:~ sangam$ multipass shell microk8s-vm
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-45-generic x86_64)

 * Documentation: https://help.ubuntu.com
 * Management: https://landscape.canonical.com
 * Support: https://ubuntu.com/advantage

 System information disabled due to load higher than 1.0

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

7 packages can be updated.
7 updates are security updates.

Last login: Tue Feb 19 18:11:11 2019 from 192.168.64.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  install kubect
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo snap install kubectl --classic

multipass@microk8s-vm:~$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-01T20:08:12Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  check k8 microk8
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.kubectl get nodes
NAME STATUS ROLES AGE VERSION
microk8s-vm Ready &amp;lt;none&amp;gt; 13m v1.13.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  check cluster
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 &amp;lt;none&amp;gt; 443/TCP 15m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Enable microk8 dashboard
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.enable dns dashboard
Enabling DNS
Applying manifest
service/kube-dns created
serviceaccount/kube-dns created
configmap/kube-dns created
deployment.extensions/kube-dns created
Restarting kubelet
DNS is enabled
Enabling dashboard
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
service/monitoring-grafana created
service/monitoring-influxdb created
service/heapster created
deployment.extensions/monitoring-influxdb-grafana-v4 created
serviceaccount/heapster created
configmap/heapster-config created
configmap/eventer-config created
deployment.extensions/heapster-v1.5.2 created
dashboard enabled
multipass@microk8s-vm:~$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Deployment
&lt;/h1&gt;

&lt;p&gt;Deploying a nginx service is what you would expect, with the addition of the Microk8s prefix&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.kubectl run nginx --image nginx --replicas 3
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx created
 --selector=run=nginx --name nginxkubectl expose deployment nginx --port 80 --target-port 80 --type ClusterIP\ 
The Service "nginx" is invalid: spec.type: Unsupported value: "ClusterIP --selector=run=nginx": supported values: "ClusterIP", "ExternalName", "LoadBalancer", "NodePort"
multipass@microk8s-vm:~$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  get all pod and services details
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.kubectl get all
NAME READY STATUS RESTARTS AGE
pod/nginx-7cdbd8cdc9-cgksg 1/1 Running 0 2m41s
pod/nginx-7cdbd8cdc9-msq5w 1/1 Running 0 2m41s
pod/nginx-7cdbd8cdc9-sbqll 1/1 Running 0 2m41s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.152.183.1 &amp;lt;none&amp;gt; 443/TCP 22m

NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 3/3 3 3 2m41s

NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-7cdbd8cdc9 3 3 3 2m41s
multipass@microk8s-vm:~$

multipass@microk8s-vm:~$ kubectl --kubeconfig=kubeconfig get all --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 &amp;lt;none&amp;gt; 443/TCP 11m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  You can verify that all services are up and running with the following command:
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.kubectl get all --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default pod/nginx-7cdbd8cdc9-cgksg 1/1 Running 0 7m19s
default pod/nginx-7cdbd8cdc9-msq5w 1/1 Running 0 7m19s
default pod/nginx-7cdbd8cdc9-sbqll 1/1 Running 0 7m19s
kube-system pod/heapster-v1.5.2-64874f6bc6-tgx96 4/4 Running 0 7m32s
kube-system pod/kube-dns-6ccd496668-n64pw 3/3 Running 0 10m
kube-system pod/kubernetes-dashboard-654cfb4879-98h29 1/1 Running 0 10m
kube-system pod/monitoring-influxdb-grafana-v4-6679c46745-tbrbg 2/2 Running 0 10m

NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 &amp;lt;none&amp;gt; 443/TCP 27m
kube-system service/heapster ClusterIP 10.152.183.77 &amp;lt;none&amp;gt; 80/TCP 10m
kube-system service/kube-dns ClusterIP 10.152.183.10 &amp;lt;none&amp;gt; 53/UDP,53/TCP 10m
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.171 &amp;lt;none&amp;gt; 443/TCP 10m
kube-system service/monitoring-grafana ClusterIP 10.152.183.127 &amp;lt;none&amp;gt; 80/TCP 10m
kube-system service/monitoring-influxdb ClusterIP 10.152.183.216 &amp;lt;none&amp;gt; 8083/TCP,8086/TCP 10m

NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default deployment.apps/nginx 3/3 3 3 7m19s
kube-system deployment.apps/heapster-v1.5.2 1/1 1 1 10m
kube-system deployment.apps/kube-dns 1/1 1 1 10m
kube-system deployment.apps/kubernetes-dashboard 1/1 1 1 10m
kube-system deployment.apps/monitoring-influxdb-grafana-v4 1/1 1 1 10m

NAMESPACE NAME DESIRED CURRENT READY AGE
default replicaset.apps/nginx-7cdbd8cdc9 3 3 3 7m19s
kube-system replicaset.apps/heapster-v1.5.2-56c546dbb8 0 0 0 7m47s
kube-system replicaset.apps/heapster-v1.5.2-64874f6bc6 1 1 1 7m32s
kube-system replicaset.apps/heapster-v1.5.2-6bc7c4965d 0 0 0 10m
kube-system replicaset.apps/kube-dns-6ccd496668 1 1 1 10m
kube-system replicaset.apps/kubernetes-dashboard-654cfb4879 1 1 1 10m
kube-system replicaset.apps/monitoring-influxdb-grafana-v4-6679c46745 1 1 1 10m
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  get cluster info
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multipass@microk8s-vm:~$ microk8s.kubectl cluster-info
Kubernetes master is running at http://127.0.0.1:8080
Heapster is running at http://127.0.0.1:8080/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at http://127.0.0.1:8080/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Grafana is running at http://127.0.0.1:8080/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
InfluxDB is running at http://127.0.0.1:8080/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy

# find ip of your vm and replace with your monitoring servives
Kubernetes master is running at http://192.168.64.3:8080
Heapster is running at http://192.168.64.3:8080/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at http://192.168.64.3:8080/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Grafana is running at http://192.168.64.3:8080/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
InfluxDB is running at http://192.168.64.3:8080/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>kubernetes</category>
    </item>
  </channel>
</rss>
