Skip to main content

Secure nginx with Let's Encrypt on Ubuntu 18.04

Installing Istio on Kubernetes Engine - Linux Guru

image source mobilemarketingmagazine.

Istio is an open source framework for connecting, monitoring, and securing microservices, including services running on Kubernetes Engine. This tutorial shows you how to install and configure Istio on GKE and deploy an Istio-enabled multi-service application.

Before you begin : 
1. Kubectl.
2. gcloud auth.
3. kubernetes cluster.

Create Kubernetes Cluster.
Let's create first kubernetes cluster, Run the following command to create Kubernetes cluster in GCP.
$ gcloud container clusters create istio --machine-type=n1-standard-2 --num-nodes=3

Download and install Istio.
Go to the istio official page to download the installation file.
https://github.com/istio/istio/releases

Extract the istio downloded file. 

  1. YAML file for kubernetes stores in install/ Directory.
  2. istioctl binary locate from bin/ directory.istioctl is used when manually injecting Envoy as a sidecar proxy and for creating routing rules and policies.


Move the istioctl file to the /usr/local/bin directory.
$ mv bin/istioctl /usr/local/bin/
$ chmod /usr/local/bin/istioctl
$ istioctl help

Grant cluster admin permissions to the current user.
$ kubectl create clusterrolebinding $USER-cluster-admin-binding --clusterrole=cluster-admin --user=yourprojectemail


Install Istio core components.
$ kubectl apply -f install/kubernetes/istio-demo-auth.yaml

This does the following:

  • creates the istio-system namespace along with the required RBAC permissions
  • deploys the core Istio components:
  • Istio-Pilot, which is responsible for service discovery and for configuring the Envoy sidecar proxies in an Istio service mesh.
  • The Mixer components Istio-Policy and Istio-Telemetry, which enforce usage policies and gather telemetry data across the service mesh.
  • Istio-Ingressgateway, which provides an ingress point for traffic from outside the cluster.
  • Istio-Citadel, which automates key and certificate management for Istio.
  • deploys plugins for metrics, logs, and tracing.


Verify Istio installation.
Output:


Ensure the corresponding Kubernetes pods are deployed and all containers are up and running: istio-pilot-*, istio-policy-*, istio-telemetry-*, istio-ingressgateway-*, and istio-citadel-*.
Output:



Deploy the BookInfo sample application.
once istio installed, we will try to deploy sample application. For this tutorial we will use bookinfo. This is a simple bookstore application with four services that provide web productpage, book details, reviews and ratings.you can find the source code from here samples/bookinfo .

Clone in to your pc.
https://github.com/istio/istio/tree/master/samples/bookinfo

go to the directory and run the below command.Deploy the application using kubectl apply and istioctl kube-inject. The kube-inject command updates the BookInfo deployment so that a sidecar is deployed in each application pod along with the service.
$ kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)

Confirm the application has been deployed.
$ kubectl get services

Finally, define the ingress gateway routing for the application:
$ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

Validate the application deployment, Getting the ingress IP and port.
$ kubectl get svc istio-ingressgateway -n istio-system

Check your application from browser using ingress ip.


Some of the reference are taken from google documentation. You can also refer it from here.
https://cloud.google.com/kubernetes-engine/docs/tutorials/installing-istio

Comments

Popular posts from this blog

Another instance of Certbot is already running - Solved - Linux guru

Error : Another instance of Certbot is already runningcertbot --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --installer nginx -d *.vishalvyas.com Another instance of Certbot is already running Reason : when you run certbot form your machine and unexpectedly stop the command, Then cert bot is not running but it left some .certbot.lock files behind.You need to kill the certbot instance form your machine. Solution : Run the below command to find killed certbot.find / -type f -name ".certbot.lock" You can see result of the command, If there are, you can remove them. Run below command to remove them.find / -type f -name ".certbot.lock" -exec rm {} \; And try again.

Install Apache Using Ansible Playbooks

Ansible is a automation tool which is widely used, you can install and install, configure and manage number of system and services remotely. you can install software and manage services and tasks without needing manually log in to each servers. you have to install ansible in one machine and use ssh to communicate host each other.



Ansible uses Playbooks which is written in YAML format. it's uses module base format. with playbook can run multiple tasks at time and provide more advance functionality, YAML file always start with "---" syntax. In this article we will see how to install and configure apahce2 using ansible YAML script. Master server : 10.80.253.11 [Ansible server, ] Slave 1 : 10.80.253.12 [need to install apache2 in slave 1] Slave 2 : 10.80.253.13 [need to install apache2 in slave 2] We need to configure slave server info in our ansible configuration file, click here to know how to add client machine to ansible. Let's update our apache2.yml file and install…

Create aws s3 bucket using cli

In this article i will explain you to how to manage s3 bucket and objects using AWS cli command line interface. for that you will have to configure AWS cli interface to your local linux machine. You can configure cli from. HERE.




After configured aws cli to your local machine, you can run all below commands. How to create bucket using AWS Cli.root@master:~# aws s3 mb s3://linuxgurubucket make_bucket: linuxgurubucket Listing Bucket : To list all bucket : root@master:~# aws s3 ls 2018-05-01 15:28:37 linuxgurubucket To list all objects from bucket :root@master:~# aws s3 ls s3://linuxgurubucket 2018-05-01 15:32:16 71515 vishal.jpg How to copy local file to s3 using aws cp command :root@master:~# aws s3 cp ansible.sh s3://linuxgurubucket/ upload: ./ansible.sh to s3://linuxgurubucket/ansible.sh To check it's upload or not :root@master:~# aws s3 ls s3://linuxgurubucket/ 2018-05-01 15:34:19 82 ansible.sh 2018-05-01 15:32:16 71515 vishal.jpg To remove file from s3 bucket using cli: