<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@cameda2</title><author><name>@cameda2</name></author><id>https://teletype.in/atom/cameda2</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/cameda2?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/cameda2?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-13T23:16:19.961Z</updated><entry><id>cameda2:pyEPnaf64L-</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/pyEPnaf64L-?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Service examples</title><published>2023-12-15T11:37:50.875Z</published><updated>2023-12-15T11:37:50.875Z</updated><category term="kubernetes-practice" label="Kubernetes practice"></category><summary type="html">Примеры использования service.</summary><content type="html">
  &lt;p id=&quot;XAzJ&quot;&gt;Примеры использования service.&lt;/p&gt;
  &lt;p id=&quot;mKDo&quot;&gt;&lt;strong&gt;Pod&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;322B&quot;&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: cam-nginx
  namespace: default
  labels:
    app: nginx
    environment: prod
  annotations:
    author: cameda
spec:
  containers:
  - name: nginx
    image: nginx:latest
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
    - containerPort: 443
    resources:
      requests:
        cpu: 300m
        memory: 300Mi
      limits:
        memory: 400Mi
  restartPolicy: Always
  hostname: nginx
  subdomain: web
EOF&lt;/pre&gt;
  &lt;p id=&quot;nhuA&quot;&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;VvrV&quot;&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cameda-nginx
  namespace: default
  labels:
    app: nginx
    environment: prod
  annotations:
    author: cameda
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  strategy: 
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        imagePullPolicy: IfNotPresent
        ports: 
        - name: http
          containerPort: 80
        resources: 
          requests: 
            cpu: 300m
            memory: 300Mi 
          limits: 
            memory: 400Mi
      restartPolicy: Always
      hostname: nginx
      subdomain: web
      dnsPolicy: ClusterFirst
      terminationGracePeriodSeconds: 90
EOF&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;dgmS&quot;&gt;&lt;strong&gt;Service NodePort&lt;/strong&gt;&lt;/h3&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;xUVA&quot;&gt;#Минимальный вариант.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service1
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;OLcS&quot;&gt;#Указываем targetPort/nodePort.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service2
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30010
EOF&lt;/pre&gt;
  &lt;pre id=&quot;OLcS&quot; data-lang=&quot;yaml&quot;&gt;#Открываем два порта.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service3
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
  - name: https
    protocol: TCP
    port: 443
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;Cjd7&quot;&gt;#На подах видны адреса источников обращения. Также идёт привязка сессий.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service4
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
  externalTrafficPolicy: Local
  sessionAffinity: ClientIP
EOF&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;mW5c&quot;&gt;&lt;strong&gt;Service ClusterIP&lt;/strong&gt;&lt;/h3&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;Ys7X&quot;&gt;#Минимальный вариант.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service5
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: ClusterIP
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
EOF&lt;/pre&gt;
  &lt;pre id=&quot;Ys7X&quot; data-lang=&quot;yaml&quot;&gt;#Указываем targetPort.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service6
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: ClusterIP
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;fCmS&quot;&gt;#Открываем два порта.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service7
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: ClusterIP
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
  - name: https
    protocol: TCP
    port: 443
EOF&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;tKX8&quot;&gt;&lt;strong&gt;Service LoadBalancer&lt;/strong&gt;&lt;/h3&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;GqfJ&quot;&gt;#Простой сервис типа балансер.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service8
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;W89l&quot;&gt;#Внутренний балансировщик
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service9
  annotations:
    # Тип балансировщика: внутренний.
    yandex.cloud/load-balancer-type: internal
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;Wgnx&quot;&gt;#Балансировщик с зарезервированным адресом, проброской адреса источника в под.
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service10
  annotations:
    yandex.cloud/subnet-id: &amp;lt;subnet-id&amp;gt;
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
  externalTrafficPolicy: Local
  loadBalancerIP: &amp;lt;заранее зарезервированный IP-адрес&amp;gt;
EOF&lt;/pre&gt;
  &lt;pre id=&quot;Wgnx&quot; data-lang=&quot;yaml&quot;&gt;#Балансировщик с зарезервированным адресом, проброской адреса источника в под и привязкой сессий
cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: nginx-service11
  annotations:
    yandex.cloud/subnet-id: &amp;lt;subnet-id&amp;gt;
  labels:
    environment: prod
  annotations:
    author: cameda
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
  - name: https
    protocol: TCP
    port: 443
    targetPort: 443
  externalTrafficPolicy: Local
  loadBalancerIP: &amp;lt;заранее зарезервированный IP-адрес&amp;gt;
  sessionAffinity: ClientIP
EOF&lt;/pre&gt;

</content></entry><entry><id>cameda2:ESLk1x8NSD4</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/ESLk1x8NSD4?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Orphaned pod pod_id found, but error not a directory occurred when trying to remove the volumes dir</title><published>2023-08-12T18:50:15.696Z</published><updated>2023-08-12T19:07:31.451Z</updated><category term="kubernetes-errors" label="kubernetes errors"></category><summary type="html">Воспроизводится на версиях Kubernetes до 1.24.</summary><content type="html">
  &lt;p id=&quot;52vG&quot;&gt;Воспроизводится на версиях Kubernetes до 1.24.&lt;/p&gt;
  &lt;p id=&quot;vZQd&quot;&gt;Это баг на стороне стораджа. Стреляет когда были проблемы с нодой, например, в результате нештатной перезагрузки.&lt;/p&gt;
  &lt;p id=&quot;dADB&quot;&gt;Помогает удаление связанной с подом директории из /var/lib/kubelet/pods&lt;/p&gt;
  &lt;p id=&quot;JOCq&quot;&gt;Для примера можно использовать решение отсюда: &lt;br /&gt;&lt;a href=&quot;https://github.com/kubernetes/kubernetes/issues/105536?ysclid=ll6te4b7x91590084#issuecomment-1612347166&quot; target=&quot;_blank&quot;&gt;https://github.com/kubernetes/kubernetes/issues/105536?ysclid=ll6te4b7x91590084#issuecomment-1612347166&lt;/a&gt;&lt;/p&gt;
  &lt;pre id=&quot;5bc3&quot; data-lang=&quot;bash&quot;&gt;#!/bin/bash
while true
do
        tail /var/log/k8s-service.log | grep &amp;quot;orphaned pod&amp;quot; | awk &amp;#x27;{print $18}&amp;#x27; | cut -d\\ -f2 | cut -d\&amp;quot; -f2 | uniq | xargs -I % sh -c &amp;#x27;echo &amp;quot;deleting /var/lib/kubelet/pods/%&amp;quot;; rm -rf /var/lib/kubelet/pods/%;&amp;#x27;
        sleep 1
done&lt;/pre&gt;

</content></entry><entry><id>cameda2:wM9Lhx_kxTM</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/wM9Lhx_kxTM?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Fairwinds. Polaris</title><published>2023-07-11T05:08:07.027Z</published><updated>2023-07-11T08:14:00.123Z</updated><category term="kubernetes-utils" label="Kubernetes utils"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/75/a0/75a01597-12a1-4a17-910c-904804024aa5.png&quot;&gt;Данное ПО создано для анализа имеющихся ресурсов в кластере на предмет уязвимостей.</summary><content type="html">
  &lt;p id=&quot;pvvu&quot;&gt;Данное ПО создано для анализа имеющихся ресурсов в кластере на предмет уязвимостей.&lt;/p&gt;
  &lt;p id=&quot;xqXT&quot;&gt;&lt;strong&gt;Установка.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Wz1U&quot; data-lang=&quot;bash&quot;&gt;helm repo add fairwinds-stable https://charts.fairwinds.com/stable
helm upgrade --install polaris fairwinds-stable/polaris --namespace polaris --create-namespace

# Быстрый вариант подключения через port-forward
kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80&lt;/pre&gt;
  &lt;p id=&quot;8G8a&quot;&gt;&lt;strong&gt;Service.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;SFtf&quot; data-lang=&quot;yaml&quot;&gt;kubectl describe svc polaris-dashboard -n polaris
Name:              polaris-dashboard
Namespace:         polaris
Labels:            app=polaris
                   app.kubernetes.io/component=dashboard
                   app.kubernetes.io/instance=polaris
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=polaris
                   app.kubernetes.io/part-of=polaris
                   app.kubernetes.io/version=5.10.3
                   helm.sh/chart=polaris-5.10.3
Annotations:       meta.helm.sh/release-name: polaris
                   meta.helm.sh/release-namespace: polaris
Selector:          app.kubernetes.io/instance=polaris,app.kubernetes.io/name=polaris,app=polaris,component=dashboard
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.21.28.186
IPs:               10.21.28.186
Port:              http-dashboard  80/TCP
TargetPort:        8080/TCP
Endpoints:         10.20.6.233:8080,10.20.7.86:8080
Session Affinity:  None
Events:            &amp;lt;none&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;csN2&quot;&gt;&lt;strong&gt;Ingress.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;MDPf&quot;&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: polaris
  namespace: polaris
  annotations:
    kubernetes.io/ingress.class: &amp;quot;nginx&amp;quot;
spec:
  rules:
    - host: polaris.prod.cameda1.tk
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: polaris-dashboard
              port:
                number: 8080
EOF&lt;/pre&gt;
  &lt;p id=&quot;Xt9F&quot;&gt;Скрин приложения.&lt;/p&gt;
  &lt;figure id=&quot;oTMr&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/75/a0/75a01597-12a1-4a17-910c-904804024aa5.png&quot; width=&quot;2875&quot; /&gt;
    &lt;figcaption&gt;Скриншот Polaris &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;YFng&quot;&gt;Полезные ссылки.&lt;/h3&gt;
  &lt;p id=&quot;lpW9&quot;&gt;Установка в режиме дашборда: &lt;a href=&quot;https://polaris.docs.fairwinds.com/dashboard/&quot; target=&quot;_blank&quot;&gt;https://polaris.docs.fairwinds.com/dashboard/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;2PCp&quot;&gt;Кратко про Polaris: &lt;a href=&quot;https://github.com/FairwindsOps/polaris/tree/master&quot; target=&quot;_blank&quot;&gt;https://github.com/FairwindsOps/polaris/tree/master&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>cameda2:jHh2t2J4E1T</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/jHh2t2J4E1T?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Download Kubernetes</title><published>2023-07-06T15:22:23.033Z</published><updated>2023-07-06T15:40:08.135Z</updated><category term="kubernetes-utils" label="Kubernetes utils"></category><summary type="html">Скачать k8s последней версии можно использовав команду.</summary><content type="html">
  &lt;p id=&quot;8TeX&quot;&gt;Скачать k8s последней версии можно использовав команду.&lt;/p&gt;
  &lt;pre id=&quot;LF0M&quot; data-lang=&quot;bash&quot;&gt;wget -q -O - https://get.k8s.io | bash
cd kubernetes&lt;/pre&gt;
  &lt;p id=&quot;XowX&quot;&gt;Компоненты кластера в скомпилированном виде лежат в директории server.&lt;br /&gt;&lt;/p&gt;

</content></entry><entry><id>cameda2:ZRzMOvgAlyl</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/ZRzMOvgAlyl?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>kubectl ktop. top для k8s</title><published>2023-07-06T10:18:54.617Z</published><updated>2023-07-06T14:39:45.334Z</updated><category term="kubernetes-utils" label="Kubernetes utils"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/0d/a8/0da8e56d-d5ec-4ceb-9381-e6e5b4fb50b2.png&quot;&gt;Данный плагин предназначен для мониторинга нагрузки на нодах кластера.</summary><content type="html">
  &lt;p id=&quot;3oSb&quot;&gt;Данный плагин предназначен для мониторинга нагрузки на нодах кластера.&lt;/p&gt;
  &lt;p id=&quot;BTqL&quot;&gt;&lt;strong&gt;Установка krew.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;qIEi&quot;&gt;(
  set -x; cd &amp;quot;$(mktemp -d)&amp;quot; &amp;amp;&amp;amp;
  OS=&amp;quot;$(uname | tr &amp;#x27;[:upper:]&amp;#x27; &amp;#x27;[:lower:]&amp;#x27;)&amp;quot; &amp;amp;&amp;amp;
  ARCH=&amp;quot;$(uname -m | sed -e &amp;#x27;s/x86_64/amd64/&amp;#x27; -e &amp;#x27;s/\(arm\)\(64\)\?.*/\1\2/&amp;#x27; -e &amp;#x27;s/aarch64$/arm64/&amp;#x27;)&amp;quot; &amp;amp;&amp;amp;
  KREW=&amp;quot;krew-${OS}_${ARCH}&amp;quot; &amp;amp;&amp;amp;
  curl -fsSLO &amp;quot;https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz&amp;quot; &amp;amp;&amp;amp;
  tar zxvf &amp;quot;${KREW}.tar.gz&amp;quot; &amp;amp;&amp;amp;
  ./&amp;quot;${KREW}&amp;quot; install krew
)&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;LMkt&quot;&gt;export PATH=&amp;quot;${KREW_ROOT:-$HOME/.krew}/bin:$PATH&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;na8r&quot;&gt;&lt;strong&gt;Установка ktop.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;kZKv&quot;&gt;kubectl krew install ktop&lt;/pre&gt;
  &lt;p id=&quot;jtO0&quot;&gt;&lt;strong&gt;Примеры использования.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;ZD3m&quot;&gt;kubectl ktop&lt;/pre&gt;
  &lt;p id=&quot;gaEQ&quot;&gt;Перемещение между блоками происходит с помощью Tab. Между элементами - с помощью стрелок.&lt;/p&gt;
  &lt;p id=&quot;uX18&quot;&gt;&lt;strong&gt;Скриншот программы.&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;oU8N&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0d/a8/0da8e56d-d5ec-4ceb-9381-e6e5b4fb50b2.png&quot; width=&quot;2867&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;dTyD&quot;&gt;Полезные ссылки.&lt;/h3&gt;
  &lt;p id=&quot;p7cQ&quot;&gt;GitHUB проекта: &lt;a href=&quot;https://github.com/vladimirvivien/ktop&quot; target=&quot;_blank&quot;&gt;https://github.com/vladimirvivien/ktop&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1qJ9&quot;&gt;Установка krew: &lt;a href=&quot;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&quot; target=&quot;_blank&quot;&gt;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;xmgx&quot;&gt;Список плагинов krew: &lt;a href=&quot;https://krew.sigs.k8s.io/plugins/&quot; target=&quot;_blank&quot;&gt;https://krew.sigs.k8s.io/plugins/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>cameda2:FcSI4VDpZ4Y</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/FcSI4VDpZ4Y?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Kyverno. failed to call webhook: service kyverno-svc not found</title><published>2023-07-05T07:52:31.530Z</published><updated>2023-07-05T07:52:31.530Z</updated><category term="min-io-vault-kaniko-kraken-d-istio" label="MinIO+Vault+Kaniko+KrakenD+Istio"></category><summary type="html">Данная ошибка у меня появилась при попытке удаления namespace kuverno. В ns был под, созданный deployment, который не удалялся.</summary><content type="html">
  &lt;p id=&quot;mRUu&quot;&gt;Данная ошибка у меня появилась при попытке удаления namespace kuverno. В ns был под, созданный deployment, который не удалялся.&lt;/p&gt;
  &lt;p id=&quot;y8m2&quot;&gt;Поймал данную ошибку при попытке удалить namespace со всеми компонентами kyverno. Остался под, созданный с помощью deployment, который не удалялся. При этом самого deployment уже не было. Удаление finalizers в namespace тоже не помогло.&lt;/p&gt;
  &lt;p id=&quot;CFK4&quot;&gt;Помогло удалить ns удаление нескольких объектов.&lt;/p&gt;
  &lt;pre id=&quot;O1J5&quot; data-lang=&quot;bash&quot;&gt;kubectl delete validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg
kubectl delete mutatingwebhookconfiguration kyverno-resource-mutating-webhook-cfg&lt;/pre&gt;
  &lt;p id=&quot;Xxeo&quot;&gt;Данное решение подсмотрел на сайте kyverno.io&lt;/p&gt;
  &lt;h3 id=&quot;DNVl&quot;&gt;Полезные ссылки.&lt;/h3&gt;
  &lt;p id=&quot;YwX8&quot;&gt;Troubleshooting Kyverno: &lt;a href=&quot;https://kyverno.io/docs/troubleshooting/&quot; target=&quot;_blank&quot;&gt;https://kyverno.io/docs/troubleshooting/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>cameda2:zTZ5o7kXxoC</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/zTZ5o7kXxoC?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Kyverno. Policy label required.</title><published>2023-07-03T17:58:29.957Z</published><updated>2023-07-03T17:58:29.957Z</updated><category term="min-io-vault-kaniko-kraken-d-istio" label="MinIO+Vault+Kaniko+KrakenD+Istio"></category><summary type="html">Пример политики и работы с Kyverno.</summary><content type="html">
  &lt;p id=&quot;7DZx&quot;&gt;Пример политики и работы с Kyverno.&lt;/p&gt;
  &lt;p id=&quot;L873&quot;&gt;&lt;strong&gt;Обязательная установка labels на поды.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Hc8x&quot; data-lang=&quot;yaml&quot;&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-labels
spec:
  validationFailureAction: enforce
  rules:
  - name: check-for-labels
    match:
      any:
      - resources:
          kinds:
          - Pod
    validate:
      message: &amp;quot;label &amp;#x27;app.kubernetes.io/name&amp;#x27; is required&amp;quot;
      pattern:
        metadata:
          labels:
            app.kubernetes.io/name: &amp;quot;?*&amp;quot;
EOF&lt;/pre&gt;
  &lt;p id=&quot;6gdC&quot;&gt;Ошибка, вылетающая если создать под без нужного label.&lt;/p&gt;
  &lt;pre id=&quot;6gdC&quot; data-lang=&quot;bash&quot;&gt;Error from server: error when creating &amp;quot;STDIN&amp;quot;: admission webhook &amp;quot;validate.kyverno.svc-fail&amp;quot; denied the request:

resource Pod/test/cam-nginx was blocked due to the following policies

require-labels:
  check-for-labels: &amp;#x27;validation error: label &amp;#x27;&amp;#x27;app.kubernetes.io/name&amp;#x27;&amp;#x27; is required.
    Rule check-for-labels failed at path /metadata/labels/app.kubernetes.io/name/&amp;#x27;&lt;/pre&gt;
  &lt;p id=&quot;aniQ&quot;&gt;&lt;strong&gt;Посмотреть политики Kyverno.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;RRJx&quot; data-lang=&quot;bash&quot;&gt;kubectl get clusterpolicy.kyverno.io

kubectl get clusterpolicy.kyverno.io | grep &amp;quot;enforce&amp;quot;
require-labels                   true         enforce   true&lt;/pre&gt;
  &lt;pre id=&quot;VLFk&quot; data-lang=&quot;bash&quot;&gt;kubectl get clusterpolicy.kyverno.io -owide
NAME                             BACKGROUND   ACTION    FAILURE POLICY   READY
disallow-capabilities            true         audit     Fail             true
disallow-host-namespaces         true         audit     Fail             true
disallow-host-path               true         audit     Fail             true
disallow-host-ports              true         audit     Fail             true
disallow-host-process            true         audit     Fail             true
disallow-privileged-containers   true         audit     Fail             true
disallow-proc-mount              true         audit     Fail             true
disallow-selinux                 true         audit     Fail             true
require-labels                   true         enforce   Fail             true
restrict-apparmor-profiles       true         audit     Fail             true
restrict-seccomp                 true         audit     Fail             true
restrict-sysctls                 true         audit     Fail             true&lt;/pre&gt;
  &lt;p id=&quot;rLRo&quot;&gt;&lt;strong&gt;Дескрайб сзданной политики.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;rLRo&quot; data-lang=&quot;bash&quot;&gt;kubectl describe clusterpolicy.kyverno.io require-labels
Name:         require-labels
Namespace:
Labels:       &amp;lt;none&amp;gt;
Annotations:  pod-policies.kyverno.io/autogen-controllers: DaemonSet,Deployment,Job,StatefulSet,CronJob
API Version:  kyverno.io/v1
Kind:         ClusterPolicy
Metadata:
  Creation Timestamp:  2023-07-03T17:08:33Z
  Generation:          2
  Managed Fields:
    API Version:  kyverno.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:kubectl.kubernetes.io/last-applied-configuration:
      f:spec:
        .:
        f:validationFailureAction:
    Manager:      kubectl-client-side-apply
    Operation:    Update
    Time:         2023-07-03T17:08:33Z
    API Version:  kyverno.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:spec:
        f:rules:
    Manager:      kyverno
    Operation:    Update
    Time:         2023-07-03T17:08:33Z
    API Version:  kyverno.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:status:
        .:
        f:ready:
    Manager:         kyverno
    Operation:       Update
    Subresource:     status
    Time:            2023-07-03T17:08:39Z
  Resource Version:  16764995
  UID:               3e5e1c5c-531f-421c-afc1-e93697305131
Spec:
  Background:      true
  Failure Policy:  Fail
  Rules:
    Exclude:
      Resources:
    Generate:
      Clone:
    Match:
      Any:
        Resources:
          Kinds:
            Pod
      Resources:
    Mutate:
    Name:  check-for-labels
    Validate:
      Message:  label &amp;#x27;app.kubernetes.io/name&amp;#x27; is required
      Pattern:
        Metadata:
          Labels:
            app.kubernetes.io/name:  ?*
    Exclude:
      Resources:
    Generate:
      Clone:
    Match:
      Any:
        Resources:
          Kinds:
            DaemonSet
            Deployment
            Job
            StatefulSet
      Resources:
    Mutate:
    Name:  autogen-check-for-labels
    Validate:
      Message:  label &amp;#x27;app.kubernetes.io/name&amp;#x27; is required
      Pattern:
        Spec:
          Template:
            Metadata:
              Labels:
                app.kubernetes.io/name:  ?*
    Exclude:
      Resources:
    Generate:
      Clone:
    Match:
      Any:
        Resources:
          Kinds:
            CronJob
      Resources:
    Mutate:
    Name:  autogen-cronjob-check-for-labels
    Validate:
      Message:  label &amp;#x27;app.kubernetes.io/name&amp;#x27; is required
      Pattern:
        Spec:
          Job Template:
            Spec:
              Template:
                Metadata:
                  Labels:
                    app.kubernetes.io/name:  ?*
  Validation Failure Action:                 enforce
Status:
  Ready:  true&lt;/pre&gt;
  &lt;p id=&quot;6Pv7&quot;&gt;&lt;strong&gt;Пример пода с правильными label&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;yaml&quot; id=&quot;IeE0&quot;&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: cam-nginx
  namespace: default
  labels:
    app: nginx
    environment: prod
  annotations:
    author: cameda
spec:
  containers:
  - name: nginx
    image: nginx:latest
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
    - containerPort: 443
    resources:
      requests:
        cpu: 300m
        memory: 300Mi
      limits:
        memory: 400Mi
  restartPolicy: Always
  hostname: nginx
  subdomain: web
EOF&lt;/pre&gt;

</content></entry><entry><id>cameda2:fO8qe_CIZ1n</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/fO8qe_CIZ1n?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>kubectl deprecations. Поиск объектов с устаревшей версией  API. (krew)</title><published>2023-06-26T17:33:34.346Z</published><updated>2023-06-26T17:33:34.346Z</updated><category term="kubernetes-utils" label="Kubernetes utils"></category><summary type="html">Данный плагин предназначен для поиска, в текущем кластере k8s, объектов с устаревшей версией API.</summary><content type="html">
  &lt;p id=&quot;3oSb&quot;&gt;Данный плагин предназначен для поиска, в текущем кластере k8s, объектов с устаревшей версией API.&lt;/p&gt;
  &lt;p id=&quot;B8xv&quot;&gt;&lt;strong&gt;Установка krew.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;EdZv&quot;&gt;(
  set -x; cd &amp;quot;$(mktemp -d)&amp;quot; &amp;amp;&amp;amp;
  OS=&amp;quot;$(uname | tr &amp;#x27;[:upper:]&amp;#x27; &amp;#x27;[:lower:]&amp;#x27;)&amp;quot; &amp;amp;&amp;amp;
  ARCH=&amp;quot;$(uname -m | sed -e &amp;#x27;s/x86_64/amd64/&amp;#x27; -e &amp;#x27;s/\(arm\)\(64\)\?.*/\1\2/&amp;#x27; -e &amp;#x27;s/aarch64$/arm64/&amp;#x27;)&amp;quot; &amp;amp;&amp;amp;
  KREW=&amp;quot;krew-${OS}_${ARCH}&amp;quot; &amp;amp;&amp;amp;
  curl -fsSLO &amp;quot;https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz&amp;quot; &amp;amp;&amp;amp;
  tar zxvf &amp;quot;${KREW}.tar.gz&amp;quot; &amp;amp;&amp;amp;
  ./&amp;quot;${KREW}&amp;quot; install krew
)&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;AjdV&quot;&gt;export PATH=&amp;quot;${KREW_ROOT:-$HOME/.krew}/bin:$PATH&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;na8r&quot;&gt;&lt;strong&gt;Установка kubepug.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;qayp&quot; data-lang=&quot;bash&quot;&gt;kubectl krew install deprecations&lt;/pre&gt;
  &lt;p id=&quot;jtO0&quot;&gt;&lt;strong&gt;Примеры использования.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;0oP3&quot; data-lang=&quot;bash&quot;&gt;kubectl deprecations --k8s-version=v1.24.8
helm template -f values.yaml .0 | kubectl deprecations --k8s-version v1.22.0 --input-file=-&lt;/pre&gt;
  &lt;p id=&quot;gaEQ&quot;&gt;Работает только если есть права админа на кластер.&lt;/p&gt;
  &lt;h3 id=&quot;dTyD&quot;&gt;Полезные ссылки.&lt;/h3&gt;
  &lt;p id=&quot;p7cQ&quot;&gt;GitHUB проекта: &lt;a href=&quot;https://github.com/rikatz/kubepug&quot; target=&quot;_blank&quot;&gt;https://github.com/rikatz/kubepug&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1qJ9&quot;&gt;Установка krew: &lt;a href=&quot;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&quot; target=&quot;_blank&quot;&gt;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;xmgx&quot;&gt;Список плагинов krew: &lt;a href=&quot;https://krew.sigs.k8s.io/plugins/&quot; target=&quot;_blank&quot;&gt;https://krew.sigs.k8s.io/plugins/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>cameda2:NUjgN3X80-v</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/NUjgN3X80-v?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>Jessie pod for DNS diag</title><published>2023-06-26T16:14:06.562Z</published><updated>2023-06-30T15:15:46.002Z</updated><category term="kubernetes-pod-deploy-sts-ds-example" label="Kubernetes pod/deploy/sts/ds example"></category><summary type="html">Под предназначен для диагностики DNS из кластера k8s.</summary><content type="html">
  &lt;p id=&quot;2U53&quot;&gt;Под предназначен для диагностики DNS из кластера k8s.&lt;/p&gt;
  &lt;p id=&quot;OMSi&quot;&gt;&lt;strong&gt;Установка.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;ZzMI&quot; data-lang=&quot;bash&quot;&gt;kubectl run jessie-dnsutils --image=k8s.gcr.io/jessie-dnsutils --restart=Never --command sleep infinity&lt;/pre&gt;
  &lt;p id=&quot;fs3O&quot;&gt;&lt;strong&gt;Примеры использования.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;fs3O&quot; data-lang=&quot;bash&quot;&gt;kubectl exec --tty --stdin jessie-dnsutils -- dig ya.ru&lt;/pre&gt;
  &lt;pre id=&quot;fs3O&quot; data-lang=&quot;bash&quot;&gt;kubectl exec --tty --stdin jessie-dnsutils -- dig NS ya.ru +short
ns2.yandex.ru.
ns1.yandex.ru.

kubectl exec --tty --stdin jessie-dnsutils -- ping ya.ru
PING ya.ru (5.255.255.242): 56 data bytes
64 bytes from 5.255.255.242: icmp_seq=0 ttl=56 time=3.971 ms&lt;/pre&gt;

</content></entry><entry><id>cameda2:-7kpm1oK4f5</id><link rel="alternate" type="text/html" href="https://teletype.in/@cameda2/-7kpm1oK4f5?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cameda2"></link><title>kubectl count (krew)</title><published>2023-06-26T16:03:42.474Z</published><updated>2023-06-26T16:03:42.474Z</updated><category term="kubernetes-utils" label="Kubernetes utils"></category><summary type="html">Данный плагин предназначен для подсчёта количества ресурсов в Namespace по kind.</summary><content type="html">
  &lt;p id=&quot;AWCg&quot;&gt;Данный плагин предназначен для подсчёта количества ресурсов в Namespace по kind.&lt;/p&gt;
  &lt;p id=&quot;B8xv&quot;&gt;&lt;strong&gt;Установка krew.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;VwrH&quot;&gt;(
  set -x; cd &amp;quot;$(mktemp -d)&amp;quot; &amp;amp;&amp;amp;
  OS=&amp;quot;$(uname | tr &amp;#x27;[:upper:]&amp;#x27; &amp;#x27;[:lower:]&amp;#x27;)&amp;quot; &amp;amp;&amp;amp;
  ARCH=&amp;quot;$(uname -m | sed -e &amp;#x27;s/x86_64/amd64/&amp;#x27; -e &amp;#x27;s/\(arm\)\(64\)\?.*/\1\2/&amp;#x27; -e &amp;#x27;s/aarch64$/arm64/&amp;#x27;)&amp;quot; &amp;amp;&amp;amp;
  KREW=&amp;quot;krew-${OS}_${ARCH}&amp;quot; &amp;amp;&amp;amp;
  curl -fsSLO &amp;quot;https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz&amp;quot; &amp;amp;&amp;amp;
  tar zxvf &amp;quot;${KREW}.tar.gz&amp;quot; &amp;amp;&amp;amp;
  ./&amp;quot;${KREW}&amp;quot; install krew
)&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;nhSs&quot;&gt;export PATH=&amp;quot;${KREW_ROOT:-$HOME/.krew}/bin:$PATH&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;na8r&quot;&gt;&lt;strong&gt;Установка count.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;R9ns&quot;&gt;kubectl krew install count&lt;/pre&gt;
  &lt;p id=&quot;jtO0&quot;&gt;&lt;strong&gt;Примеры использования.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;q3Ee&quot; data-lang=&quot;bash&quot;&gt;kubectl count pods,ds,deploy
kubectl count -n kube-system po,deploy

#Вывод в yaml формате.
kubectl count -oy -n kube-system deploy,svc&lt;/pre&gt;
  &lt;p id=&quot;wI6c&quot;&gt;&lt;strong&gt;Пример вывода.&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;FpB5&quot; data-lang=&quot;bash&quot;&gt;kubectl count -oy -n kube-system deploy,svc
- namespace: kube-system
  groupVersion: apps/v1
  kind: Deployment
  count: 3
- namespace: kube-system
  groupVersion: v1
  kind: Service
  count: 10&lt;/pre&gt;
  &lt;pre id=&quot;rede&quot; data-lang=&quot;bash&quot;&gt;kubectl count pods -n kube-system
+-------------+------------------------+------------+-------+
|  Namespace  |      GroupVersion      |    Kind    | Count |
+-------------+------------------------+------------+-------+
| kube-system | v1                     | Pod        |    46 |
+             +------------------------+------------+       +
|             | metrics.k8s.io/v1beta1 | PodMetrics |       |
+-------------+------------------------+------------+-------+&lt;/pre&gt;
  &lt;h3 id=&quot;dTyD&quot;&gt;Полезные ссылки.&lt;/h3&gt;
  &lt;p id=&quot;p7cQ&quot;&gt;GitHUB проекта: &lt;a href=&quot;https://github.com/chenjiandongx/kubectl-count&quot; target=&quot;_blank&quot;&gt;https://github.com/chenjiandongx/kubectl-count&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1qJ9&quot;&gt;Установка krew: &lt;a href=&quot;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&quot; target=&quot;_blank&quot;&gt;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;xmgx&quot;&gt;Список плагинов krew: &lt;a href=&quot;https://krew.sigs.k8s.io/plugins/&quot; target=&quot;_blank&quot;&gt;https://krew.sigs.k8s.io/plugins/&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>