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
Tutorials on DevOps Technologies including Bugzilla, Chef, Docker, Git, Jira, Kubernetes, Puppet, SaltStack, Scrapy, Unix
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
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
kubectl rollout history <name of deployment> --revision =2
kubectl rollout undo <name of deployment> --revision =2
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
~
++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++
apiVersion: v1
kind: Pod
metadata:
name: pod2
labels:
tier: frontend
spec:
containers:
- name: podngin
image: nginx
+++++++++++++++++++++++++++++++++++
~
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
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/^.* //' | |