Skip to content

Latest commit

 

History

History
89 lines (74 loc) · 2.51 KB

kubernetes.md

File metadata and controls

89 lines (74 loc) · 2.51 KB

Kubernetes (1.17)

Installing

Mac

brew install kubernetes-cli

Linux

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
# create a kubeconfig.yaml file (by downloading it or whatever) and export it
export KUBECONFIG=kubeconfig.yaml

Usage

  • Get all nodes: kubectl get nodes
  • Get cluster info: kubectl cluster-info
  • Get all pods (like containers): kubectl get pods
  • Get mmore verbose info about pods: kubectl get pods -o wide
  • Create a pod with nginx image and expose port 80: kubectl run myNginx --image=nginx --port=80
  • Get pods info: kubectl describe pods
  • Get info about one pod: kubectl describe pod myNginx
  • Delete a pod: kubectl delete pod myNginx

Example of a Deployment yaml file to deploy 3 pods with nginx image and expose port 80

    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: myNginx
    spec:
        replicas: 3
        selector:
            matchLabels:
                app: myNginx
        template:
            metadata:
                labels:
                    app: myNginx
            spec:
                containers:
                - name: myNginx
                    image: nginx
                    ports:
                        - containerPort: 80
  • Create a deployment: kubectl create -f myNginx.yaml
  • Get deployments: kubectl get deployments
  • Get info about one deployment: kubectl describe deployment myNginx
  • Edit a deployment: kubectl edit deployment myNginx
  • Delete a deployment: kubectl delete deployment myNginx

Exposing our service to the outside world

  • Expose a service: kubectl expose deployment myNginx --type=LoadBalancer --port=80
  • Get services: kubectl get services
  • Get info about one service: kubectl describe service myNginx
  • Delete a service: kubectl delete service myNginx

Other way to export our service, make a service yaml file

    apiVersion: v1
    kind: Service
    metadata:
        name: myNginx
        labels:
            app: myNginx
    spec:
        type: LoadBalancer
        ports:
            - port: 80
        selector:
            app: myNginx
  • Create a service: kubectl create -f myNginxService.yaml
  • Get services: kubectl get services
  • Get info about one service: kubectl describe service myNginx
  • Delete a service: kubectl delete service myNginx