GithubHelp home page GithubHelp logo

isabella232 / stakatermeshstack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stakater-archive/stakatermeshstack

0.0 0.0 0.0 6 KB

A Stack to Deploy Mesh Apps on Kubernetes Cluster via Helm Charts i.e. Istio etc.

Home Page: http://stakater.com

Makefile 100.00%

stakatermeshstack's Introduction

Stakater Mesh Stack

Overview

This document provide guideline regarding the installation and usage of Istio on kubernetes cluster for creating service mesh.

Installation

This section provides step by step guideline regarding istio installation.

  • Create a namespace using the manifest given below in which istio and its dependencies will be installed:
{ 
  "kind": "Namespace", 
  "apiVersion": "v1", 
  "metadata": { 
    "name": "mesh", 
    "labels": { 
      "name": "mesh" 
    }
  }
}

Create the namespace using the command given below:

$ sudo kubectl apply -f namespace-creation-manifest.yaml
  • Istio can be installed in two ways:

    • Method 1: Follow the guidelines given in this link to install istio using kubernetes manifests.

    • Method 2: By using HelmRelease, its manifest is given below:

apiVersion: flux.weave.works/v1beta1
kind: HelmRelease
metadata:
  name: istio
  namespace: mesh
spec:
  releaseName: istio
  chart:
    repository: https://gcsweb.istio.io/gcs/istio-prerelease/daily-build/release-1.1-latest-daily/charts/
    name: istio
    version: 1.1.0
  values:
    prometheus:
      enabled: false

    mixer:
      telemetry:
        resources:
          requests:
            cpu: 100m
            memory: 500m

Currently, this chart is being used for Istio deployment.

Notes

This section explain the problems that has been faced during installation, deployment and usage of Istio.

Nginx-ingress Controller

  • Initially, we tried to use nginx-ingress controller to enable ingress for istio services(like jaeger) but the problem was with the traces because the requests done through nginx-ingress was not able to generate traces and no way was found on how to configure nginx-ingress controller with Istio.

    Although, we were able to get traces by using Istio ingress gateway on jaeger.

Proxy(sidecar) Container Injection

There are two ways to inject sidecar(proxy) container:

  • To manually inject sidecar use the instruction given on this link.

  • Istio by default monitors all namespaces but it only add sidecars(envoy) to those namespaces that have this label istio-injection:enabled assigned. To assign this label to a namespace use the command given below:

Disable sidecar injection in a pod

  • By default istio inserts sidecar containers in each pods(only if namespace has istio-injection: enabled) automatically, to disable sidecar injection in a pod add this annotation sidecarInjectorWebhook.enabled: "false" to pod annotations of a deployment.
$ sudo kubectl label namespace <namespace-name> istio-injection=enabled

CRD deletion issue

  • Sometimes due to ungraceful deletion of istio helm release CRDs will not be removed. There are two ways to delete remaining CRDs.

    • Method-1: Use the command given below to get all the CRDs and delete them one by one:
    $ sudo kubectl get crd
    
    $ sudo kubectl delete crd <crd-name>
    • Method-2: In this method we will use the manifest for crd creation to delete all the corresponding CRDs. First of all down the istio release. Move inside this folder (istio-X/install/kubernetes/helm/istio-init/files/) and run the command given below on each file:
    $ sudo kubectl delete -f <filename>.yaml

stakatermeshstack's People

Contributors

aliartiza75 avatar kahootali avatar stakater-user avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.