No name
Links
411 | 2022-09-11 18:52:04 |
1) Установить Kubernetes2) Создать конфигурацию, состоящую из Deploymen, HorizontalPodAutoscaler, Service, ConfigMap
192.168.254.10 c1-control-plane192.168.254.11 c1-worker-1192.168.254.12 c1-worker-2
$cat << EOF | sudo tee /etc/modules-load.d/containerd.confoverlaybr_netfilterEOF
$cat << EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.confnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1EOF
sudo sed -i '/swap/d' /etc/fstab$swapoff -a
$modprobe overlay$modprobe br_netfilter$sysctl –system
$apt install -y chrony
$apt install -y curl gpg lsb-release apparmor apparmor-utils$curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg$echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null$apt update$apt-get install -y containerd.io$mkdir -p /etc/containerd$containerd config default | tee /etc/containerd/config.toml
Добавляем параметр SystemdCgroup = true к [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] чтобы получилось
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true
$apt-get install -y apt-transport-https ca-certificates curl$curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg$echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list$apt-get update$apt install iptables libiptc0/stable libxtables12/stable$apt-get install -y kubelet=1.21.0-00 kubeadm=1.21.0-00 kubectl=1.21.0-00$apt-mark hold kubelet kubeadm kubectl
$kubeadm init --pod-network-cidr 172.20.0.0/16 --kubernetes-version 1.21.0$mkdir -p $HOME/.kube$cp -i /etc/kubernetes/admin.conf $HOME/.kube/config$chown $(id -u):$(id -g) $HOME/.kube/config$kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
$kubeadm token create --print-join-command
Показать список подов
$kubectl get pods
Показать список всех подов
$kubectl get pods -A
Отображать состояние подов в интерактивном режиме
$kubectl get pods -w
Вывод событий кластера
$kubectl get events -w
Создать под с портом 80 и образом nginx:latest
$kubectl run hello –image=nginx:latest –port=80
Вывод подробной информации о поде
$kubectl describe pods hello
Вывести журнал событий пода, если в контейнере указан tail будет отображаться он
$kubectl logs hello
Вход в контейнер
$kubectl exec it hello bash
Применение манифеста из файла
$kubectl apply -f hello.yaml
Удаление манифеста из фала
$kubectl delete -f hello.yaml
Отобразить список развертываний
$kubectl get deploy
Вывести список реплик
$kubectl get rs
Создание развертывания
$kubectl create deploy hello –image nginx:latest
Вывод описания развертывания
$kubectl describe deploy hello
Создание нескольких копий
$kubectl scale deploy hello –replicas 4
Настройка автомасштабирования
$kubectl autoscale deploy hello –min=10 –max=15 –cpu-percent=80
Вывод информации по после команды выше
$kubectl get hpa
Замена образа в развертывании
$kubectl set image deploy/hello nginx=httpd:latest –record
Вывод статуса обновления
$kubectl rollout status deploy/hello
Вывод список хранимых копий
$kubectl rollout history deploy/hello
Отменить последнее обновление
$kubectl rollout undo deploy/hello
Откат к определенной версии
$kubectl rollout undo deploy/hello –to-version=3
Обновление образа из репозитория
$kubectl rollout restart deploy/hello
Удаление развертывания
$kubectl delete deploy hello
Создание сервиса
$kubectl expose deploy hello –type=ClusterIP/NodePort/LoadBalancer –port 80
apiVersion : apps/v1kind: Deploymentmetadata:name: php-my-admin-deployment-autoscalinglabels:app : php-my-admin-deploymentspec:selector:matchLabels:project: php-my-admintemplate:metadata:labels:project: php-my-admin # Service will look for those PODS Labels!!!spec:containers:- name : php-my-admin-webimage: h963z57/phpmyadmin:mainimagePullPolicy: "Always"ports:- containerPort: 80volumeMounts:- name: config-php-my-adminmountPath: /mntvolumes:- name: config-php-my-adminconfigMap:name: php-my-admin-configmap---apiVersion: autoscaling/v2beta1kind: HorizontalPodAutoscalermetadata:name: php-my-admin-autoscalingspec:scaleTargetRef:apiVersion: apps/v2beta1v1kind: Deploymentname: php-my-admin-deployment-autoscalingminReplicas: 1maxReplicas: 2metrics:- type: Resourceresource:name: cputargetAverageUtilization: 70- type: Resourceresource:name: memorytargetAverageUtilization: 80---apiVersion: v1kind: Servicemetadata:name: php-my-admin-autoscaling-pod-servicelabels:env : prodowner: h963z57spec:selector:project: php-my-admin # Selecting PODs with those Labelsports:- name : app-listenerprotocol : TCPport : 80 # Port on Load BalancertargetPort: 80 # Port on PodnodePort: 30007# clusterIP: 10.105.214.244type: NodePort---apiVersion: v1kind: ConfigMapmetadata:name: php-my-admin-configmapdata:config.inc.php: |<Указываем текст конфигурационного файла>