Po zalogowaniu się na stronie należy kliknąć na ikonę swojego profilu i przejść do zakładki »Account & API Keys« .
Po przejściu należy kliknąć na przycisk »Create API Key« .
Wyświetli się konfiguracja przyszłego tokenu. Można, choć nie trzeba ustawiać aby token wygasł po pewnym czasie. Po wybraniu odpowiedniej konfiguracji należy nacisnąć na »Create« .
Po utworzeniu tokena należy skopiować zawartość pola »Bearer Token« i wkleić go w polu token:
pliku konfiguracyjnego przedstawionego poniżej.
Poniższy plik konfiguracyjny należy umieścić w folderze ~/.kube/
w pliku pod nazwą config
. Jeżeli plik nie istnieje to należy go utworzyć.
apiVersion: v1
clusters:
- cluster:
server: https://rancher.e-science.pl/k8s/clusters/c-fj488
name: cluster
contexts:
- context:
cluster: cluster
namespace: ·············· WPISZ NAZWĘ DOMYŚLNEGO NAMESPACE ··············
user: cluster
name: cluster
current-context: cluster
kind: Config
preferences: {}
users:
- name: cluster
user:
token: ···············WKLEJ SKOPIOWANY TOKEN TUTAJ···············
W przypadku klastra innego niż główny, należy pobrać plik konfiguracyjny, a następnie usunąć pole
certificate-authority-data
oraz zmienić domenę servera narancher.e-science.pl
user:
token: token-59nhn:7k69sr4sg65qglhc2nrv4bg59tq6xdbtnr7kv7n52qfkcm6rkkw96v
contexts:
- context:
cluster: cluster
namespace: team-1
Jeżeli konfiguracja działa, polecenie
kubectl get pods
nie powinno zwrócić błędu.
Program
kubectl
należy zainstalować zgodnie z zaleceniami podanymi tutaj.
kubectl apply -f ./my-manifest.yaml # utworzenie zasobu
kubectl apply -f ./my1.yaml -f ./my2.yaml # tworzenie na podstawie kliku plików
kubectl apply -f ./dir # utworzenie zasobów na podstawie manifestów
# wszystkich plików w danej ścieżce
kubectl delete -f ./pod.json # usuń pod używający typu oraz nazwy określonej w pliku pod.json
kubectl delete pod,service bar foo # usuń pody and serwisy z nazwami „bar” oraz „foo”
kubectl delete pods,services -l name=myLabel # usuń pody i serwisy z etykietą „name=myLabel”
kubectl -n my-ns delete pod,svc --all # usuń pody i serwisy w przestrzeni nazwy „my-ns” (namespace)
Wiele z pośród podanych komend jest ogólnych, tzn zamiast pods
można zastosować nazwę innego obiektu.
kubectl get services # Wypisz wszystkie serwisy w danej przestrzeni nazw
kubectl get pods # List all pods in the namespace
kubectl get pods --all-namespaces # Wypisz wszystkie pody we wszystkich przestrzeniach nazw
kubectl get pods -o wide # Wypisz wszystkie serwisy w danej przestrzeni nazw, szczegółowo
kubectl get pod my-pod -o yaml # Pokaż plik yaml konkretnego poda
kubectl get deployment my-dep # Wypisz konkretny deployment
kubectl describe pod my-pod # Pokazuje szczegółowy opis stanu poda
Kubectl pozwala na przekierowanie portu dla poda, deploymentu, replicasetu bądź serwisu.
kubectl port-forward my-pod local_port:my-pod_port
Aby przetestować na podanym przykładzie należy wpierw podany poniżej deployment zapisać do pliku a następnie użyć go komendą
kubectl apply -f przykladowy_deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ssh-deployment
labels:
app: ssh
spec:
replicas: 1
selector:
matchLabels:
app: ssh
template:
metadata:
labels:
app: ssh
spec:
containers:
- name: ssh
image: lscr.io/linuxserver/openssh-server
ports:
- containerPort: 2222
env:
- name: "PUID"
value: "1000"
- name: "PGID"
value: "1000"
- name: "TZ"
value: "Europe/London"
- name: "PASSWORD_ACCESS"
value: "true"
- name: "USER_PASSWORD"
value: "password"
- name: "USER_NAME"
value: "student"
resources:
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
Użycie parametrów
spec:
ports:
- containerPort: 2222
definiuje nasłuchiwanie na porcie 2222
.
Przekierowanie portu do przykładowego deploymentu:
$ kubectl port-forward deployment/ssh-deployment 2222:2222
Forwarding from 127.0.0.1:2222 -> 2222
Forwarding from [::1]:2222 -> 2222
alternatywnie bezpośrednio na podzie:
$ kubectl get pod | grep ssh
ssh-deployment-cbd78bdd9-srkv7 1/1 Running 0 37m
$ kubectl port-forward ssh-deployment-cbd78bdd9-srkv7 2222:2222
Forwarding from 127.0.0.1:2222 -> 2222
Forwarding from [::1]:2222 -> 2222
zalogowanie się za pomocą ssh na określonym porcie:
$ ssh student@localhost -p 2222
student@localhost's password:
Welcome to OpenSSH Server
ssh-deployment-cbd78bdd9-srkv7:~$