Kaushik Kumar
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # **istio ** for pods to coummnicate an extra layer of service mesh is implemented . a different namespace "istio". Istio container are injected inside the pods . These are proxy pods . Every pods which wants to communicate with different pods will send the netwrok request to istio proxy container . IN the istio-system name space there are a lot of other pods also . telemetry pods for capturing the netrowk metrics . All the requests are kept in db with network request with timestamp for analysis. control plane and data plane . data plane : the proxies that are injected control plane : all the pods that implements the functionaly are collectevily called control plane individual proxies that makes up service mesh are called sidecars--sidecars because they run alongside to each service rathen than within them . these side cars proxy sits along the microserviceand routes to other proxy Together they form a mesh network Prior to this intercommunication logic will be written by develoiper inside microservice. :+1: Service Identity and Security. Provide services in the mesh with a verifiable identity and provide the ability to protect service traffic as it flows over networks of varying degrees of trustability. Citadel Citadel provides strong service-to-service and end-user authentication with built-in identity and credential management. You can use Citadel to upgrade unencrypted traffic in the service mesh. Using Citadel, operators can enforce policies based on service identity rather than on network controls. # Links reference link :+1: https://developers.redhat.com/courses/service-mesh/istio-introduction Installation : For installation of docker otherthan podman use amazon linux . Install docker kubernetes and then minikube . Open all traffic in AWS . expose the service to nodeport . https://kubernetes.io/docs/tasks/tools/ https://thenewstack.io/how-to-install-a-kubernetes-cluster-on-red-hat-centos-8/ https://www.zekelabs.com/blog/how-to-install-kubernetes-cluster-on-aws-ec2-instances/ Minikube Commands : https://minikube.sigs.k8s.io/docs/start/ Dashboard : istio installation https://istio.io/latest/docs/tasks/observability/metrics/using-istio-dashboard/ https://istio.io/latest/docs/ops/integrations/prometheus/#option-1-quick-start https://istio.io/latest/docs/ops/integrations/grafana/#option-1-quick-start https://istio.io/latest/docs/setup/getting-started/ Istio katacoda Tutorials https://www.katacoda.com/courses/istio/deploy-istio-on-kubernetes Istio Authentication https://istio.io/latest/docs/tasks/security/authentication/authn-policy/#require-a-valid-token go to above link .After creating the namespaces . Go to end user authentication Istio Service to service communication https://istio.io/latest/docs/tasks/security/authorization/authz-http/ https://www.keycloak.org/2018/02/keycloak-and-istio.html ---not of much use Istio Authorization https://istio.io/latest/docs/tasks/security/authorization/authz-jwt/ Istio Authentication with Auze jwt https://www.paraesthesia.com/archive/2020/09/03/setting-up-oauth2-proxy-with-istio/ Istio Virtualservice and destination rule using Kiali ;Kiali documentation https://kiali.io/documentation/latest/tutorial/#01-deploy-travels-demo Kiali dashboard explained https://kiali.io/documentation/latest/faq/ # environment variables istio and authc cd cd istio-1.9.0 ls -larth export PATH=$PWD/bin:$PATH export INGRESS_HOST=$(minikube ip) export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}') export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}') ## services within tutorial namespace communicates with mTLS *https://next.nutanix.com/karbon-kubernetes-orchestration-30/istio-service-mesh-on-nutanix-karbon-32639* Add a namespace label to instruct Istio to automatically inject Envoy sidecar proxies when you deploy your application later: applicatin are pods in Kali U i istio graph timeline cannot go to large window It can find the service problem . That there is a problem between two services ******************************************** # aws history kubernetesinstallation, minikube installation , istio 1.9 installation apiVersion: v1 kind: Service metadata: creationTimestamp: "2021-02-23T12:56:23Z" labels: app: kiali app.kubernetes.io/instance: kiali-server app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: kiali app.kubernetes.io/part-of: kiali app.kubernetes.io/version: v1.29.0 helm.sh/chart: kiali-server-1.29.0 version: v1.29.0 managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: .: {} f:app: {} f:app.kubernetes.io/instance: {} f:app.kubernetes.io/managed-by: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:app.kubernetes.io/version: {} f:helm.sh/chart: {} f:version: {} f:spec: f:externalTrafficPolicy: {} f:ports: .: {} k:{"port":20001,"protocol":"TCP"}: .: {} f:port: {} f:protocol: {} f:targetPort: {} f:selector: .: {} f:app.kubernetes.io/instance: {} f:app.kubernetes.io/name: {} f:sessionAffinity: {} f:type: {} manager: kubectl-expose operation: Update time: "2021-02-23T12:56:23Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:ports: k:{"port":9090,"protocol":"TCP"}: .: {} f:name: {} f:nodePort: {} f:port: {} f:protocol: {} f:targetPort: {} k:{"port":20001,"protocol":"TCP"}: f:name: {} manager: kubectl-edit operation: Update time: "2021-02-23T13:07:59Z" name: kiali namespace: istio-system resourceVersion: "4607" uid: 2a6fc3df-130b-495b-b005-510c90cf536a spec: clusterIP: 10.96.187.198 clusterIPs: - 10.96.187.198 externalTrafficPolicy: Cluster ports: - name: http nodePort: 30220 port: 20001 protocol: TCP targetPort: 20001 - name: http-metrics nodePort: 30221 port: 9090 protocol: TCP targetPort: 9090 selector: app.kubernetes.io/instance: kiali-server app.kubernetes.io/name: kiali sessionAffinity: None type: NodePort status: loadBalancer: {} ***************************************** ********************************************************* History from ec2 instance : 1 grep -E --color 'vmx|svm' /proc/cpuinfo 2 yum install -y kubectl 3 cat <<EOF > /etc/yum.repos.d/kubernetes.repo 4 [kubernetes] 5 name=Kubernetes 6 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 7 enabled=1 8 gpgcheck=1 9 repo_gpgcheck=1 10 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 11 EOF 12 yum install -y kubectl 13 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube 14 sudo mkdir -p /usr/local/bin/ 15 sudo install minikube /usr/local/bin/ 16 minikube start --vm-driver=none 17 yum install docker 18 minikube start --vm-driver=none 19 ls 20 ls -larth 21 rm -rf minikube 22 curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 23 sudo install minikube-linux-amd64 /usr/local/bin/minikube 24 minikube start 25 systemctl start docker 26 minikube start 27 minikube start --driver=none 28 yum install docker -y 29 systemctl enable docker && systemctl start docker 30 cd /etc/yum.repos.d/ 31 ls -larth 32 rm -rf kubernetes.repo 33 cat <<EOF > /etc/yum.repos.d/kubernetes.repo 34 [kubernetes] 35 name=Kubernetes 36 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 37 enabled=1 38 gpgcheck=1 39 repo_gpgcheck=0 40 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 41 exclude=kube* 42 EOF 43 ls -larth 44 cat <<EOF > /etc/sysctl.d/k8s.conf 45 net.bridge.bridge-nf-call-ip6tables = 1 46 net.bridge.bridge-nf-call-iptables = 1 47 EOF 48 sysctl --system 49 setenforce 0 50 yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes 51 systemctl enable kubelet && systemctl start kubele 52 systemctl enable kubelet && systemctl start kubelet 53 sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --ignore-preflight- 54 errors=NumCPU 55 sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --ignore-preflight 56 kubeadm init --pod-network-cidr=192.168.0.0/16 57 mkdir -p $HOME/.kube 58 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 59 sudo chown $(id -u):$(id -g) $HOME/.kube/config 60 export KUBECONFIG=/etc/kubernetes/admin.conf 61 kubectl get nodes 62 cd 63 curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm 64 sudo rpm -ivh minikube-latest.x86_64.rpm 65 minikube start 66 minikube start --driver=none 67 kubectl get nodes 68 curl -L https://istio.io/downloadIstio | sh - 69 cd istio-1.9.0 70 ls -larth 71 export PATH=$PWD/bin:$PATH 72 hostname 73 history 74 cd 75 cd istio-1.9.0/ 76 ls -larth 77 pwd 78 echo $PATH 79 export PATH=$PWD/bin:$PATH 80 echo $PATH 81 istioctl install --set profile=demo -y 82 kubectl get nodes 83 kubectl get pods 84 kubectl version 85 netstat -alpn | grep 6443 86 systemctl status kubectl 87 systemctl enable kubelet && systemctl start kubelet 88 systemctl status kubectl 89 echo $HOME 90 ls -larth /root/ 91 mkdir -p $HOME/.kube 92 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 93 sudo chown $(id -u):$(id -g) $HOME/.kube/config 94 kubectl get nodes 95 minikube start 96 kubectl get nodes 97 kubectl version 98 kubectl get nodes 99 systemctl status kubectl 100 cd istio-1.9.0/ 101 export PATH=$PWD/bin:$PATH 102 istioctl install --set profile=demo -y 103 kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.9/samples/addons/grafana.yaml 104 kubectl get pods -n istio-system 105 kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.9/samples/addons/prometheus.yaml 106 kubectl get pods -n istio-system 107 watch kubectl get pods -n istio-system 108 kubectl apply -f samples/addons 109 kubectl rollout status deployment/kiali -n istio-system 110 kubectl get pods -n istio-system 111 istioctl dashboard kiali 112 kubectl get svc -n istio-system 113 curl 10.108.4.4:20001 114 curl 10.108.4.4:9090 115* kubectl get svc 116 kubectl get svc -n istio-system kiali 117 kubectl describe svc -n istio-system kiali 118 kubectl edit svc -n istio-system kiali 119 kubectl describe svc -n istio-system kiali -o kiali.yaml 120 kubectl describe svc -n istio-system kiali -o > kiali.yaml 121 kubectl describe svc -n istio-system kiali > kiali.yaml 122 ls -larth 123 cat kiali.yaml 124 kubectl get svc -n istio-system kiali -o kiali.yaml 125 kubectl get svc -n istio-system kiali -o kiali_get.yaml --export 126 kubectl edit svc -n istio-system kiali 127 ls -larth 128 cd samples/ 129 ls -larth 130 cd addons/ 131 ls -larth 132 vi kiali.yaml 133 cat kiali.yaml 134 cp kiali.yaml kiali.yaml_backup 135 vi kiali.yaml 136 kubectl get deployment 137 kubectl get deployment -n isitio-system 138 kubectl get deployment -n istio-system 139 kubectl get svc -n istio-system kiali 140 kubectl get pods -n istio-system 141 kubectl delete svc -n istio-system kiali 142 kubectl get svc -n istio-system kiali 143 kubectl get pods -n istio-system 144 kubectl get svc -n istio-system 145 kubectl get deployment -n istio-system 146 kubectl get deployment -n istio-system kiali 147 cd 148 ls -larth 149 cd istio-1.9.0/ 150 ls -larth 151 cat kiali.yaml 152 kubectl expose deployment kiali --name=kiali --port=20001 --target-port=20001 --type=NodePort 153 kubectl get deployment -n istio-system 154 kubectl expose deployment kiali --name=kiali --port=20001 --target-port=20001 --type=NodePort 155 kubectl expose deployment kiali --port=20001 --target-port=20001 --type=NodePort 156 kubectl expose deployment -n istio-system kiali --port=20001 --target-port=20001 --type=NodePort 157 kubectl get svc -n istio-system 158 curl 10.96.187.198:20001 159 hostname -i 160 curl 172.31.86.161:30220 162 kubectl get svc -n istio-system 165 kubectl get svc -n istio-system kiali 166 kubectl edit svc -n istio-system kiali 167 kubectl get svc -n istio-system 168 history 169 history > /home/ec2-user/history_new.txt ********************************************** root@ip-172-31-86-161 istio-1.9.0]# kubectl describe svc -n istio-system kiali Name: kiali Namespace: istio-system Labels: app=kiali app.kubernetes.io/instance=kiali-server app.kubernetes.io/managed-by=Helm app.kubernetes.io/name=kiali app.kubernetes.io/part-of=kiali app.kubernetes.io/version=v1.29.0 helm.sh/chart=kiali-server-1.29.0 version=v1.29.0 Annotations: <none> Selector: app.kubernetes.io/instance=kiali-server,app.kubernetes.io/name=kiali Type: NodePort IP Families: <none> IP: 10.96.187.198 IPs: 10.96.187.198 Port: http 20001/TCP TargetPort: 20001/TCP NodePort: http 30220/TCP Endpoints: 172.17.0.9:20001 Port: http-metrics 9090/TCP TargetPort: 9090/TCP NodePort: http-metrics 30221/TCP Endpoints: 172.17.0.9:9090 Session Affinity: None External Traffic Policy: Cluster Events: <none> ********************************************************************* spec: clusterIP: 10.96.187.198 clusterIPs: - 10.96.187.198 externalTrafficPolicy: Cluster ports: - name: http nodePort: 30220 port: 20001 protocol: TCP targetPort: 20001 - name: http-metrics nodePort: 30221 port: 9090 protocol: TCP targetPort: 9090 selector: app.kubernetes.io/instance: kiali-server app.kubernetes.io/name: kiali sessionAffinity: None type: NodePort status: loadBalancer: {} **************************************** To be edit using edit command ports: - name: http nodePort: 30220 port: 20001 protocol: TCP targetPort: 20001 - name: http-metrics nodePort: 30221 port: 9090 protocol: TCP targetPort: 9090 **************************************** apiVersion: v1 kind: Service metadata: creationTimestamp: "2021-02-23T12:56:23Z" labels: app: kiali app.kubernetes.io/instance: kiali-server app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: kiali app.kubernetes.io/part-of: kiali app.kubernetes.io/version: v1.29.0 helm.sh/chart: kiali-server-1.29.0 version: v1.29.0 managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: .: {} f:app: {} f:app.kubernetes.io/instance: {} f:app.kubernetes.io/managed-by: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:app.kubernetes.io/version: {} f:helm.sh/chart: {} f:version: {} f:spec: f:externalTrafficPolicy: {} f:ports: .: {} k:{"port":20001,"protocol":"TCP"}: .: {} f:port: {} f:protocol: {} f:targetPort: {} f:selector: .: {} f:app.kubernetes.io/instance: {} f:app.kubernetes.io/name: {} f:sessionAffinity: {} f:type: {} manager: kubectl-expose operation: Update time: "2021-02-23T12:56:23Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:ports: k:{"port":9090,"protocol":"TCP"}: .: {} f:name: {} f:nodePort: {} f:port: {} f:protocol: {} f:targetPort: {} k:{"port":20001,"protocol":"TCP"}: f:name: {} manager: kubectl-edit operation: Update time: "2021-02-23T13:07:59Z" name: kiali namespace: istio-system resourceVersion: "4607" uid: 2a6fc3df-130b-495b-b005-510c90cf536a spec: clusterIP: 10.96.187.198 clusterIPs: - 10.96.187.198 externalTrafficPolicy: Cluster ports: - name: http nodePort: 30220 port: 20001 protocol: TCP targetPort: 20001 - name: http-metrics nodePort: 30221 port: 9090 protocol: TCP targetPort: 9090 selector: app.kubernetes.io/instance: kiali-server app.kubernetes.io/name: kiali sessionAffinity: None type: NodePort status: loadBalancer: {} ********************************************** # Mysql Installation and user creation root : Root@123 fsuser : Fsuser@123 login : mysql -u root -p GRANT ALL PRIVILEGES ON * . * TO 'fsuser'@'localhost'; Link : https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql Token :-1: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiIzMjhiMDhiMS1iNzc2LTQ4ZjAtYTQ3NC1mYWEzYjkyN2FlYWYiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4L3YyLjAiLCJpYXQiOjE2MTYwNTg1MTcsIm5iZiI6MTYxNjA1ODUxNywiZXhwIjoxNjE2MDYyNDE3LCJhaW8iOiJBWVFBZS84VEFBQUFvS0tlbHZHVG9Fa3IwbzFkRHQvZW9ING1QRzlnaTd4T3l1Mi9HcW1SaUE4KzZnR0JWUjlzQkd1aTVGanRUcG9BS2hFdTNtcm5wMjg5ZmZHMDJRTHBORzAwaDhSMWtzSk1kRDJPU0tPb0dGcURPWlBOU21Fc2RKZkxmTTFaY1N5cDMrVUNwem9oWGprTEIvSG1CZmYxczUxQVI2ai9wZUUyNGs3aUJrUVVLSnM9IiwiYXpwIjoiNWUxMzAxYmItYzBjNC00ZjQ2LWEyNmMtMjA0NzI3MDNmZDgyIiwiYXpwYWNyIjoiMSIsImdyb3VwcyI6WyJjMzkxODI0Mi1hYjJjLTRjZGYtYjNkMC1lMzRiZTg4OTUyMTYiXSwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNDA0YjE5NjctNjUwNy00NWFiLThhNmQtNzM3NGEzZjQ3OGJlLyIsIm5hbWUiOiJLYXVzaGlrIEt1bWFyIiwib2lkIjoiNjQ5NTRmNmQtNTBkMi00N2U5LTg5MTYtODBjNDA5M2NlYzEyIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiNTQ2NjgyQFRDUy5jb20iLCJyaCI6IjAuQUFBQTVLQ09QSHdTQWtxc1pWaUREa3JHQ0xzQkUxN0V3RVpQb213Z1J5Y0RfWUpVQUxvLiIsInNjcCI6IkZpbGVzLlJlYWQiLCJzdWIiOiJVYzUwUXI4WnZmakJRRlBNcUV3cW9hTlJCQy1JWno1LXFzWDNhRGxCSnRZIiwidGlkIjoiM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4IiwidXRpIjoiblVjVThCVnB6RW1NSHdORi1YQ3lBQSIsInZlciI6IjIuMCIsIndpZHMiOlsiMTNiZDFjNzItNmY0YS00ZGNmLTk4NWYtMThkM2I4MGYyMDhhIl19.Q_eAPMg07rmkUtEQUxAYJR8K5bD2zd2vP26YSz_x80bkyVWvY9HFVkTsY-vwjiTGAaNmbu8fQsGG3RxQN9cJRmMRBGuugnWtNtdj1zegMq791PqDno_xUveE13ZdPAUehw8Q_bX22O8rg98TnDId71RoQoXwDONjVma9qF0jJuTTAFPhysyP9JffzTNS10VGBycNiTLU-M0CGzmenItCNGiJUNBpmwfxY3lHFfPJO8jf-B-2yg1fMeGNOwDppjL97D0w4Ee_G11KwjYKbNTuDXzq6O2DT29Yie6DDYIbU_miLN4BFYBT99I15s8dOtFn-Wg6luCDT_xrXup7M6Egyw # curl command curl --location --request GET 'http://54.91.207.155:31089/greeting' \ --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiIzMjhiMDhiMS1iNzc2LTQ4ZjAtYTQ3NC1mYWEzYjkyN2FlYWYiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4L3YyLjAiLCJpYXQiOjE2MTYwNTg1MTcsIm5iZiI6MTYxNjA1ODUxNywiZXhwIjoxNjE2MDYyNDE3LCJhaW8iOiJBWVFBZS84VEFBQUFvS0tlbHZHVG9Fa3IwbzFkRHQvZW9ING1QRzlnaTd4T3l1Mi9HcW1SaUE4KzZnR0JWUjlzQkd1aTVGanRUcG9BS2hFdTNtcm5wMjg5ZmZHMDJRTHBORzAwaDhSMWtzSk1kRDJPU0tPb0dGcURPWlBOU21Fc2RKZkxmTTFaY1N5cDMrVUNwem9oWGprTEIvSG1CZmYxczUxQVI2ai9wZUUyNGs3aUJrUVVLSnM9IiwiYXpwIjoiNWUxMzAxYmItYzBjNC00ZjQ2LWEyNmMtMjA0NzI3MDNmZDgyIiwiYXpwYWNyIjoiMSIsImdyb3VwcyI6WyJjMzkxODI0Mi1hYjJjLTRjZGYtYjNkMC1lMzRiZTg4OTUyMTYiXSwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNDA0YjE5NjctNjUwNy00NWFiLThhNmQtNzM3NGEzZjQ3OGJlLyIsIm5hbWUiOiJLYXVzaGlrIEt1bWFyIiwib2lkIjoiNjQ5NTRmNmQtNTBkMi00N2U5LTg5MTYtODBjNDA5M2NlYzEyIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiNTQ2NjgyQFRDUy5jb20iLCJyaCI6IjAuQUFBQTVLQ09QSHdTQWtxc1pWaUREa3JHQ0xzQkUxN0V3RVpQb213Z1J5Y0RfWUpVQUxvLiIsInNjcCI6IkZpbGVzLlJlYWQiLCJzdWIiOiJVYzUwUXI4WnZmakJRRlBNcUV3cW9hTlJCQy1JWno1LXFzWDNhRGxCSnRZIiwidGlkIjoiM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4IiwidXRpIjoiblVjVThCVnB6RW1NSHdORi1YQ3lBQSIsInZlciI6IjIuMCIsIndpZHMiOlsiMTNiZDFjNzItNmY0YS00ZGNmLTk4NWYtMThkM2I4MGYyMDhhIl19.Q_eAPMg07rmkUtEQUxAYJR8K5bD2zd2vP26YSz_x80bkyVWvY9HFVkTsY-vwjiTGAaNmbu8fQsGG3RxQN9cJRmMRBGuugnWtNtdj1zegMq791PqDno_xUveE13ZdPAUehw8Q_bX22O8rg98TnDId71RoQoXwDONjVma9qF0jJuTTAFPhysyP9JffzTNS10VGBycNiTLU-M0CGzmenItCNGiJUNBpmwfxY3lHFfPJO8jf-B-2yg1fMeGNOwDppjL97D0w4Ee_G11KwjYKbNTuDXzq6O2DT29Yie6DDYIbU_miLN4BFYBT99I15s8dOtFn-Wg6luCDT_xrXup7M6Egyw'

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully