DMCA.com Protection Status Trending Topics About Devops

Wednesday, 2 June 2021

Resource Quota

 apiVersion: v1

kind: Pod

metadata:

  name: quota

  labels:

      app: myapp

      type: frontend

spec:

 containers:

    - name: pod-quota

      image: nginx

      resources:

        requests:

          memory: 200Mi

          cpu: 100m

Deployment & Rollout Kubernetes

 vi moon.yml 

________________________________


apiVersion: apps/v1

kind: Deployment

metadata:

  name: nginx-deployment

  labels:

    app: nginx

spec:

  replicas: 4

  minReadySeconds: 30

  strategy:

    rollingUpdate:

      maxSurge: 3

      maxUnavailable: 0

    type: RollingUpdate

  selector:

    matchLabels:

      app: nginx

  template:

    metadata:

      labels: 

        app: nginx

    spec:

      containers:

      - name: nginx

        image: nginx:1.14.2

        ports:

        - containerPort: 80


kubectl apply -f moon.yml 



__________________________((((((((((((((((((((((((((((())))))))))))))))))____________________


change version of nginx



apiVersion: apps/v1

kind: Deployment

metadata:

  name: nginx-deployment

  labels:

    app: nginx

spec:

  replicas: 4

  minReadySeconds: 30

  strategy:

    rollingUpdate:

      maxSurge: 3

      maxUnavailable: 0

    type: RollingUpdate

  selector:

    matchLabels:

      app: nginx

  template:

    metadata:

      labels: 

        app: nginx

    spec:

      containers:

      - name: nginx

        image: nginx:1.14.3

        ports:

        - containerPort: 80



kubectl apply -f moon.yml  --record=true 


kubectl explain deployment nginx-deployment



kubectl rollout history deploy nginx-deployment

output :


deployment.apps/nginx-deployment 

REVISION  CHANGE-CAUSE

2         kubectl apply --filename=dep.yml --record=true

3         kubectl apply --filename=dep.yml --record=true


how to do the rollback


kubectl rollout history <name of deployment> --revision =2


kubectl rollout undo <name of deployment> --revision =2




ReplicaSet Kubernetes

vi moon.yml

______________________________________________________

 apiVersion: apps/v1

kind: ReplicaSet

metadata:

  name: abid-moon

  labels:

    app: guestbook

    tier: frontend

spec:

  # modify replicas according to your case

  replicas: 3

  selector:

    matchLabels:

      tier: frontend

  template:

    metadata:

      labels:

        tier: frontend

    spec:

      containers:

      - name: moon-solutions

        image: nginx




++++++++++++++++++++++++++++++++++++++++++++++++++


apiVersion: v1

kind: Pod

metadata:

  name: pod2

  labels:

    app: guestbook

spec:

  containers:

     - name: podngin

       image: nginx

~                        


++++++++++++++++++++++++++++++++

execute file:     kubectl apply -f  moon.yml
_________________________________________________________

delete RS: kubectl delete rs abid-moon

+++++++++++++++++++++++++++++++


apiVersion: v1

kind: Pod

metadata:

  name: pod2

  labels:

    tier:  frontend

spec:

  containers:

     - name: podngin

       image: nginx



+++++++++++++++++++++++++++++++++++



~                        

ReplicationController Kubernetes

 

vi moon.yml

***************************************************

apiVersion: v1

kind: ReplicationController

metadata:

  name: nginx

spec:

  replicas: 7

  selector:

    type: nginx

  template:

    metadata:

      name: nginx

      labels:

        type: nginx

    spec:

      containers:

      - name: nginx

        image: nginx

*************************************************************

create service 

vi service123.yml
*********************************

apiVersion: v1
kind: Service
metadata:
 name: mysvc
spec:
 type: NodePort
 ports:
  - targetPort: 80
    port: 1234
    nodePort: 30008
 selector:
  type: nginx

********************************************************


check service 

*******************
kubectl describe svc mysvc 

**************************

check endpoints also 


kubectl get pods -o wide

******************************

DELETE POD


kubectl delete pod <podname>

*********************************************

REMOVE LABEL 


*****************************
kubectl label pod <podename> type-


*******************************************************


I want to delete ReplicationController but not pods 


kubectl delete rc --cascade=false podname





***************************************************








Saturday, 29 May 2021

Install Kubernetes on Ubuntu 18.04 LTS & Centos

 


Step1: On All Machines ( Master & All nodes ):
**********************
### INSTALL DOCKER
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update ; clear
sudo apt-get install -y docker-ce
sudo service docker start ; clear
### INSTALL KUBEADM,KUBELET,KUBECTL
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update ; clear
sudo apt-get install -y kubelet kubeadm kubectl
************************
Step2: On Master only:
***********************
sudo kubeadm init --ignore-preflight-errors=all
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
## Weave
**********************
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
kubectl get nodes
kubectl get all --all-namespaces
**********************
Step3: On Nodes only:
**********************
copy the kubeadm join token from master & run it on all nodes
Ex: kubeadm join 10.128.15.231:6443 --token mks3y2.v03tyyru0gy12mbt \
--discovery-token-ca-cert-hash sha256:3de23d42c7002be0893339fbe558ee75e14399e11f22e3f0b34351077b7c4b56
how to find kubeadm join token later
****************************
kubeadm token create --print-join-command --ttl=0

## Install Kubernetes on CENTOS

### Step1: `On All Machines ( Master & All nodes ):`
### Set SELinux in permissive mode (effectively disabling it)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
### Install Docker
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce docker-ce-cli containerd.io
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
systemctl start docker
### Install kubeadm,kubelet,kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
### Step2: `On Master only:`
sudo kubeadm init --ignore-preflight-errors=all
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
## Weave Pod Network
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
kubectl get nodes
kubectl get all --all-namespaces
### Step3: `On Nodes only:`
copy the kubeadm join token from master & run it on all nodes
Ex: kubeadm join 10.128.15.231:6443 --token mks3y2.v03tyyru0gy12mbt \
--discovery-token-ca-cert-hash sha256:3de23d42c7002be0893339fbe558ee75e14399e11f22e3f0b34351077b7c4b56
##### To Generate certificate or public key
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'