This creates a new service of type NodePort
, i.e. accessible outside of cluster via some randomly assigned high port number, targeting any pod with the run: my-service
label:
apiVersion: v1
kind: Service
metadata:
name: <name>
labels:
run: my-service
spec:
ports:
- port: <port>
protocol: <TCP || UDP>
nodePort: <node_port>
type: NodePort
selector:
run: my-service
secret:
apiVersion: v1
kind: Secret
metadata:
name: <name>
data:
password: <password>
$ sudo kubeadm token create --print-join-command
$ kubectl config view
$ kubectl apply -f <manifest.yml>
$ kubectl get -l <key>=<value> <resource_type>
kubectl get pods <pod_name> -o jsonpath='{.metadata.uid}'
$ kubectl label pod <pod_name> <key>=<value>
$ kubectl get pods -o wide
$ kubectl exec -it <pod_name> -- /bin/bash
$ kubectl port-forward -n <namespace> <pod_name> <port>
$ kubectl logs <pod_name> -n <namespace>
$ kubectl cp /path/to/local/file <pod_name>:/path/to/remote/file
$ kubectl create deployment <deployment_name> --image=<repo>/<app_name>:<version>
$ kubectl get deployment <deployment_name> -o yaml > <output_name>.yaml
$ kubectl scale deployment <deployment> replicas=<n_replicas>
kubectl rollout history deployment <deployment_name>
and specific version information:
$ kubectl rollout history deployment <deployment_name> --revision=<revision>
$ kubectl rollout undo eployment/<deployment_name>
$ kubectl describe nodes | grep -i Taint
node
role$ kubectl taint nodes --all node-role.kubernetes.io/master-
$ kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName -n <namespace>
Encodes the value in base64.
$ kubectl create secret generic <secret_name> --from-literal=<key>=<value>
$ kubectl get secret <secret_name> -o jsonpath='{.<key>}' | base64 --decode
Jump in to pod and test service is available locally:
kubectl exec -it <pod_name> -- curl localhost:<port>
Should also check this from another pod within the same network.