Skip to content

Edycja Poda

Pamiętaj, że NIE MOŻESZ edytować specyfikacji istniejącego Poda, poza poniższymi polami:

  • spec.containers[*].image
  • spec.initContainers[*].image
  • spec.activeDeadlineSeconds
  • spec.tolerations

Na przykład, nie możesz edytować zmiennych środowiskowych, konta serwisowego, limitów zasobów (o tym porozmawiamy później) w działającym Podzie.
Jeśli naprawdę chcesz to zmienić, masz dwie opcje:

1. Użycie kubectl edit

  1. Uruchom polecenie:
kubectl edit pod <nazwa-poda>
  1. Otworzy się specyfikacja Poda w edytorze (np. vi).
  2. Spróbuj edytować wybrane właściwości.
  3. Przy próbie zapisu, jeśli edytujesz pole, które nie jest możliwe do edycji, zostaniesz zablokowany.
kubectl edit pod mypod
error: pods "mypod" is invalid
A copy of your changes has been stored to "/tmp/kubectl-edit-abcd.yaml"
error: Edit cancelled, no valid changes were saved.
  1. Wyświetlona zostania informacja, gdzie została zapisana kopia zmian niewprowadzonych. Będzie też tam błąd. Kopia pliku z Twoimi zmianami zostanie zapisana w tymczasowej lokalizacji, jak pokazano powyżej.
  2. Następnie usuń istniejącego Poda:
kubectl delete pod mypod
  1. Utwórz nowego Poda z wprowadzonymi zmianami, korzystając z tymczasowego pliku:
kubectl create -f /tmp/kubectl-edit-abcd.yaml

2. Eksport definicji Poda do pliku YAML

  1. Wyeksportuj definicję Poda do pliku:
kubectl get pod mypod -o yaml > mypod-manifest.yaml
  1. Edytuj plik w edytorze (vi lub innym):
vi mypod-manifest.yaml
  1. Zapisz zmiany.
  2. Usuń istniejącego Poda:
kubectl delete pod mypod
  1. Utwórz nowego Poda na podstawie zmodyfikowanego pliku:
kubectl create -f mypod-manifest.yaml

Edycja Deploymentu

W przypadku Deploymentu jest to łatwe - po zmianach wprowadzonych do Poda w Deploymencie zostanie on automatycznie usunięty i dodany ponownie.

kubectl edit deployment deployment-web