Tuesday, March 30, 2021

Learn About Setting Up a Kubernetes Cluster in the Cloud

Sources:
https://docs.oracle.com/en/solutions/deploy-kubernetes/index.html#GUID-E3A3CD8A-1846-492A-8DAD-33209C1C94EB








"compartment =

Description:

A collection of related resources. Compartments are a fundamental component of Oracle Cloud Infrastructure for organizing and isolating your cloud resources. You use them to clearly separate resources for the purposes of measuring usage and billing, access (through the use of IAM Service policies), and isolation (separating the resources for one project or business unit from another). A common approach is to create a compartment for each major part of your organization. For more information, see Overview of the IAM Service and also Setting Up Your Tenancy."



"Authentication and Authorization

Each service in Oracle Cloud Infrastructure integrates with IAM for authentication and authorization, for all interfaces (the Console, SDK or CLI, and REST API).

An administrator in your organization needs to set up groups compartments , and policies  that control which users can access which services, which resources, and the type of access. For example, the policies control who can create new users, create and manage the cloud network, launch instances, create buckets, download objects, etc. For more information, see Getting Started with Policies. For specific details about writing policies for each of the different services, see Policy Reference."

Wednesday, March 24, 2021

Tokamak. “The Artificial Sun”. SWOT. Strength and Weak...

What is Deja vu? A neuroscientist explains the memory illusion

Data_Science_Cheatsheet.pdf

Linus Torvalds. Using the Rust language for new Linux inline code instead of C?

New Result From Large Hadron Collider Challenges Leading Theory in Physics – Cannot Be Explained by Our Current Laws of Nature

Source:

"It's too early to say if this genuinely is a deviation from the Standard Model but the potential implications are such that these results are the most exciting thing I've done in 20 years in the field. It has been a long journey to get here."



Monday, March 15, 2021

K8s: [kube]Ctl + [kube]Adm + mini[kube]


kubectl

kubectl controls the Kubernetes cluster manager.

Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/

 

Basic Commands (Beginner):

  create        Create a resource from a file or from stdin.

  expose        Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service

  run           Run a particular image on the cluster

  set           Set specific features on objects

 

Basic Commands (Intermediate):

  explain       Documentation of resources

  get           Display one or many resources

  edit          Edit a resource on the server

  delete        Delete resources by filenames, stdin, resources and names, or by resources and label selector

 

Deploy Commands:

  rollout       Manage the rollout of a resource

  scale         Set a new size for a Deployment, ReplicaSet or Replication Controller

  autoscale     Auto-scale a Deployment, ReplicaSet, or ReplicationController

 

Cluster Management Commands:

  certificate   Modify certificate resources.

  cluster-info  Display cluster info

  top           Display Resource (CPU/Memory/Storage) usage.

  cordon        Mark node as unschedulable

  uncordon      Mark node as schedulable

  drain         Drain node in preparation for maintenance

  taint         Update the taints on one or more nodes

 

Troubleshooting and Debugging Commands:

  describe      Show details of a specific resource or group of resources

  logs          Print the logs for a container in a pod

  attach        Attach to a running container

  exec          Execute a command in a container

  port-forward  Forward one or more local ports to a pod

  proxy         Run a proxy to the Kubernetes API server

  cp            Copy files and directories to and from containers.

  auth          Inspect authorization

  debug         Create debugging sessions for troubleshooting workloads and nodes

 

Advanced Commands:

  diff          Diff live version against would-be applied version

  apply         Apply a configuration to a resource by filename or stdin

  patch         Update field(s) of a resource

  replace       Replace a resource by filename or stdin

  wait          Experimental: Wait for a specific condition on one or many resources.

  kustomize     Build a kustomization target from a directory or a remote url.

 

Settings Commands:

  label         Update the labels on a resource

  annotate      Update the annotations on a resource

  completion    Output shell completion code for the specified shell (bash or zsh)

 

Other Commands:

  api-resources Print the supported API resources on the server

  api-versions  Print the supported API versions on the server, in the form of "group/version"

  config        Modify kubeconfig files

  plugin        Provides utilities for interacting with plugins.

  version       Print the client and server version information

Usage:

  kubectl [flags] [options]

 

Use "kubectl <command> --help" for more information about a given command.

Use "kubectl options" for a list of global command-line options (applies to all commands).

 

 

###############################

kubeadm

 

    KUBEADM                                                 

    Easily bootstrap a secure Kubernetes cluster            

                                                              

    Please give us feedback at:                             

    https://github.com/kubernetes/kubeadm/issues            

   

Example usage:

 

    Create a two-machine cluster with one control-plane node

    (which controls the cluster), and one worker node

    (where your workloads, like Pods and Deployments run).

 

───────────────────┘

    On the first machine:                                   

    control-plane# kubeadm init                             

    └──────────────────────

    On the second machine:                                  

    worker# kubeadm join <arguments-returned-from-init>     

    └────────────────────────

 

    You can then repeat the second step on as many other machines as you like.

 

Usage:

  kubeadm [command]

 

Available Commands:

  alpha       Kubeadm experimental sub-commands

  certs       Commands related to handling kubernetes certificates

  completion  Output shell completion code for the specified shell (bash or zsh)

  config      Manage configuration for a kubeadm cluster persisted in a ConfigMap in the cluster

  help        Help about any command

  init        Run this command in order to set up the Kubernetes control plane

  join        Run this on any machine you wish to join an existing cluster

  reset       Performs a best effort revert of changes made to this host by 'kubeadm init' or 'kubeadm join'

  token       Manage bootstrap tokens

  upgrade     Upgrade your cluster smoothly to a newer version with this command

  version     Print the version of kubeadm

 

Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

  -h, --help                     help for kubeadm

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm [command] --help" for more information about a command.

############################


https://minikube.sigs.k8s.io/docs/start/
https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe


minikube start

..\Kubernetes\Minikube>minikube


minikube provisions and manages local Kubernetes clusters optimized for development workflows.

Basic Commands:
  start          Starts a local Kubernetes cluster
  status         Gets the status of a local Kubernetes cluster
  stop           Stops a running local Kubernetes cluster
  delete         Deletes a local Kubernetes cluster
  dashboard      Access the Kubernetes dashboard running within the minikube cluster
  pause          pause Kubernetes
  unpause        unpause Kubernetes

Images Commands:
  docker-env     Configure environment to use minikube's Docker daemon
  podman-env     Configure environment to use minikube's Podman service
  cache          Add, delete, or push a local image into minikube
  image          Load a local image into minikube

Configuration and Management Commands:
  addons         Enable or disable a minikube addon
  config         Modify persistent configuration values
  profile        Get or list the current profiles (clusters)
  update-context Update kubeconfig in case of an IP or port change

Networking and Connectivity Commands:
  service        Returns a URL to connect to a service
  tunnel         Connect to LoadBalancer services

Advanced Commands:
  mount          Montuje podany katalog wewnątrz minikube
  ssh            Log into the minikube environment (for debugging)
  kubectl        Run a kubectl binary matching the cluster version
  node           Add, remove, or list additional nodes

Troubleshooting Commands:
  ssh-key        Retrieve the ssh identity key path of the specified node
  ssh-host       Retrieve the ssh host key of the specified node
  ip             Retrieves the IP address of the specified node
  logs           Returns logs to debug a local Kubernetes cluster
  update-check   Wyświetl aktualną i najnowszą wersję
  version        Wyświetl wersję minikube

Other Commands:
  completion     Generate command completion for a shell

Use "minikube <command> --help" for more information about a given command
 

###################################

kubeadm completion --help

 

Output shell completion code for the specified shell (bash or zsh).

The shell code must be evaluated to provide interactive

completion of kubeadm commands. This can be done by sourcing it from

the .bash_profile.

 

Note: this requires the bash-completion framework.

 

To install it on Mac use homebrew:

    $ brew install bash-completion

Once installed, bash_completion must be evaluated. This can be done by adding the

following line to the .bash_profile

    $ source $(brew --prefix)/etc/bash_completion

 

If bash-completion is not installed on Linux, please install the 'bash-completion' package

via your distribution's package manager.

 

Note for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2

 

Usage:

  kubeadm completion SHELL [flags]

 

Examples:

 

# Install bash completion on a Mac using homebrew

brew install bash-completion

printf "\n# Bash completion support\nsource $(brew --prefix)/etc/bash_completion\n" >> $HOME/.bash_profile

source $HOME/.bash_profile

 

# Load the kubeadm completion code for bash into the current shell

source <(kubeadm completion bash)

 

# Write bash completion code to a file and source it from .bash_profile

kubeadm completion bash > ~/.kube/kubeadm_completion.bash.inc

printf "\n# Kubeadm shell completion\nsource '$HOME/.kube/kubeadm_completion.bash.inc'\n" >> $HOME/.bash_profile

source $HOME/.bash_profile

 

# Load the kubeadm completion code for zsh[1] into the current shell

source <(kubeadm completion zsh)

 

Flags:

  -h, --help   help for completion

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

 

###############################

kubeadm init --help

Run this command in order to set up the Kubernetes control plane

 

The "init" command executes the following phases:

```

preflight                    Run pre-flight checks

certs                        Certificate generation

  /ca                          Generate the self-signed Kubernetes CA to provision identities for other Kubernetes components

  /apiserver                   Generate the certificate for serving the Kubernetes API

  /apiserver-kubelet-client    Generate the certificate for the API server to connect to kubelet

  /front-proxy-ca              Generate the self-signed CA to provision identities for front proxy

  /front-proxy-client          Generate the certificate for the front proxy client

  /etcd-ca                     Generate the self-signed CA to provision identities for etcd

  /etcd-server                 Generate the certificate for serving etcd

  /etcd-peer                   Generate the certificate for etcd nodes to communicate with each other

  /etcd-healthcheck-client     Generate the certificate for liveness probes to healthcheck etcd

  /apiserver-etcd-client       Generate the certificate the apiserver uses to access etcd

  /sa                          Generate a private key for signing service account tokens along with its public key

kubeconfig                   Generate all kubeconfig files necessary to establish the control plane and the admin kubeconfig file

  /admin                       Generate a kubeconfig file for the admin to use and for kubeadm itself

  /kubelet                     Generate a kubeconfig file for the kubelet to use *only* for cluster bootstrapping purposes

  /controller-manager          Generate a kubeconfig file for the controller manager to use

  /scheduler                   Generate a kubeconfig file for the scheduler to use

kubelet-start                Write kubelet settings and (re)start the kubelet

control-plane                Generate all static Pod manifest files necessary to establish the control plane

  /apiserver                   Generates the kube-apiserver static Pod manifest

  /controller-manager          Generates the kube-controller-manager static Pod manifest

  /scheduler                   Generates the kube-scheduler static Pod manifest

etcd                         Generate static Pod manifest file for local etcd

  /local                       Generate the static Pod manifest file for a local, single-node local etcd instance

upload-config                Upload the kubeadm and kubelet configuration to a ConfigMap

  /kubeadm                     Upload the kubeadm ClusterConfiguration to a ConfigMap

  /kubelet                     Upload the kubelet component config to a ConfigMap

upload-certs                 Upload certificates to kubeadm-certs

mark-control-plane           Mark a node as a control-plane

bootstrap-token              Generates bootstrap tokens used to join a node to a cluster

kubelet-finalize             Updates settings relevant to the kubelet after TLS bootstrap

  /experimental-cert-rotation  Enable kubelet client certificate rotation

addon                        Install required addons for passing Conformance tests

  /coredns                     Install the CoreDNS addon to a Kubernetes cluster

  /kube-proxy                  Install the kube-proxy addon to a Kubernetes cluster

```

 

Usage:

  kubeadm init [flags]

  kubeadm init [command]

 

Available Commands:

  phase       Use this command to invoke single phase of the init workflow

 

Flags:

      --apiserver-advertise-address string   The IP address the API Server will advertise it's listening on. If not set the default network interface will be used.

      --apiserver-bind-port int32            Port for the API Server to bind to. (default 6443)

      --apiserver-cert-extra-sans strings    Optional extra Subject Alternative Names (SANs) to use for the API Server serving certificate. Can be both IP addresses and DNS names.

      --cert-dir string                      The path where to save and store the certificates. (default "/etc/kubernetes/pki")

      --certificate-key string               Key used to encrypt the control-plane certificates in the kubeadm-certs Secret.

      --config string                        Path to a kubeadm configuration file.

      --control-plane-endpoint string        Specify a stable IP address or DNS name for the control plane.

      --cri-socket string                    Path to the CRI socket to connect. If empty kubeadm will try to auto-detect this value; use this option only if you have more than one CRI installed or if you have non-standard CRI socket.

      --dry-run                              Don't apply any changes; just output what would be done.

      --experimental-patches string          Path to a directory that contains files named "target[suffix][+patchtype].extension". For example, "kube-apiserver0+merge.yaml" or just "etcd.json". "patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats supported by kubectl. The default "patchtype" is "strategic". "extension" must be either "json" or "yaml". "suffix" is an optional string that can be used to determine which patches are applied first alpha-numerically.

      --feature-gates string                 A set of key=value pairs that describe feature gates for various features. Options are:

                                             IPv6DualStack=true|false (ALPHA - default=false)

                                             PublicKeysECDSA=true|false (ALPHA - default=false)

  -h, --help                                 help for init

      --ignore-preflight-errors strings      A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.

      --image-repository string              Choose a container registry to pull control plane images from (default "k8s.gcr.io")

      --kubernetes-version string            Choose a specific Kubernetes version for the control plane. (default "stable-1")

      --node-name string                     Specify the node name.

      --pod-network-cidr string              Specify range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node.

      --service-cidr string                  Use alternative range of IP address for service VIPs. (default "10.96.0.0/12")

      --service-dns-domain string            Use alternative domain for services, e.g. "myorg.internal". (default "cluster.local")

      --skip-certificate-key-print           Don't print the key used to encrypt the control-plane certificates.

      --skip-phases strings                  List of phases to be skipped

      --skip-token-print                     Skip printing of the default bootstrap token generated by 'kubeadm init'.

      --token string                         The token to use for establishing bidirectional trust between nodes and control-plane nodes. The format is [a-z0-9]{6}\.[a-z0-9]{16} - e.g. abcdef.0123456789abcdef

      --token-ttl duration                   The duration before the token is automatically deleted (e.g. 1s, 2m, 3h). If set to '0', the token will never expire (default 24h0m0s)

      --upload-certs                         Upload control-plane certificates to the kubeadm-certs Secret.

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm init [command] --help" for more information about a command.

 

 

###############################

kubeadm join --help

 

When joining a kubeadm initialized cluster, we need to establish

bidirectional trust. This is split into discovery (having the Node

trust the Kubernetes Control Plane) and TLS bootstrap (having the

Kubernetes Control Plane trust the Node).

 

There are 2 main schemes for discovery. The first is to use a shared

token along with the IP address of the API server. The second is to

provide a file - a subset of the standard kubeconfig file. This file

can be a local file or downloaded via an HTTPS URL. The forms are

kubeadm join --discovery-token abcdef.1234567890abcdef 1.2.3.4:6443,

kubeadm join --discovery-file path/to/file.conf, or kubeadm join

--discovery-file https://url/file.conf. Only one form can be used. If

the discovery information is loaded from a URL, HTTPS must be used.

Also, in that case the host installed CA bundle is used to verify

the connection.

 

If you use a shared token for discovery, you should also pass the

--discovery-token-ca-cert-hash flag to validate the public key of the

root certificate authority (CA) presented by the Kubernetes Control Plane.

The value of this flag is specified as "<hash-type>:<hex-encoded-value>",

where the supported hash type is "sha256". The hash is calculated over

the bytes of the Subject Public Key Info (SPKI) object (as in RFC7469).

This value is available in the output of "kubeadm init" or can be

calculated using standard tools. The --discovery-token-ca-cert-hash flag

may be repeated multiple times to allow more than one public key.

 

If you cannot know the CA public key hash ahead of time, you can pass

the --discovery-token-unsafe-skip-ca-verification flag to disable this

verification. This weakens the kubeadm security model since other nodes

can potentially impersonate the Kubernetes Control Plane.

 

The TLS bootstrap mechanism is also driven via a shared token. This is

used to temporarily authenticate with the Kubernetes Control Plane to submit a

certificate signing request (CSR) for a locally created key pair. By

default, kubeadm will set up the Kubernetes Control Plane to automatically

approve these signing requests. This token is passed in with the

--tls-bootstrap-token abcdef.1234567890abcdef flag.

 

Often times the same token is used for both parts. In this case, the

--token flag can be used instead of specifying each token individually.

 

 

The "join [api-server-endpoint]" command executes the following phases:

```

preflight              Run join pre-flight checks

control-plane-prepare  Prepare the machine for serving a control plane

  /download-certs        [EXPERIMENTAL] Download certificates shared among control-plane nodes from the kubeadm-certs Secret

  /certs                 Generate the certificates for the new control plane components

  /kubeconfig            Generate the kubeconfig for the new control plane components

  /control-plane         Generate the manifests for the new control plane components

kubelet-start          Write kubelet settings, certificates and (re)start the kubelet

control-plane-join     Join a machine as a control plane instance

  /etcd                  Add a new local etcd member

  /update-status         Register the new control-plane node into the ClusterStatus maintained in the kubeadm-config ConfigMap

  /mark-control-plane    Mark a node as a control-plane

```

 

Usage:

  kubeadm join [api-server-endpoint] [flags]

  kubeadm join [command]

 

Available Commands:

  phase       Use this command to invoke single phase of the join workflow

 

Flags:

      --apiserver-advertise-address string            If the node should host a new control plane instance, the IP address the API Server will advertise it's listening on. If not set the default network interface will be used.

      --apiserver-bind-port int32                     If the node should host a new control plane instance, the port for the API Server to bind to. (default 6443)

      --certificate-key string                        Use this key to decrypt the certificate secrets uploaded by init.

      --config string                                 Path to kubeadm config file.

      --control-plane                                 Create a new control plane instance on this node

      --cri-socket string                             Path to the CRI socket to connect. If empty kubeadm will try to auto-detect this value; use this option only if you have more than one CRI installed or if you have non-standard CRI socket.

      --discovery-file string                         For file-based discovery, a file or URL from which to load cluster information.

      --discovery-token string                        For token-based discovery, the token used to validate cluster information fetched from the API server.

      --discovery-token-ca-cert-hash strings          For token-based discovery, validate that the root CA public key matches this hash (format: "<type>:<value>").

      --discovery-token-unsafe-skip-ca-verification   For token-based discovery, allow joining without --discovery-token-ca-cert-hash pinning.

      --experimental-patches string                   Path to a directory that contains files named "target[suffix][+patchtype].extension". For example, "kube-apiserver0+merge.yaml" or just "etcd.json". "patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats supported by kubectl. The default "patchtype" is "strategic". "extension" must be either "json" or "yaml". "suffix" is an optional string that can be used to determine which patches are applied first alpha-numerically.

  -h, --help                                          help for join

      --ignore-preflight-errors strings               A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.

      --node-name string                              Specify the node name.

      --skip-phases strings                           List of phases to be skipped

      --tls-bootstrap-token string                    Specify the token used to temporarily authenticate with the Kubernetes Control Plane while joining the node.

      --token string                                  Use this token for both discovery-token and tls-bootstrap-token when those values are not provided.

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm join [command] --help" for more information about a command.

 

 

###############################

kubeadm certs --help

Commands related to handling kubernetes certificates

 

Usage:

  kubeadm certs [command]

 

Aliases:

  certs, certificates

 

Available Commands:

  certificate-key  Generate certificate keys

  check-expiration Check certificates expiration for a Kubernetes cluster

  generate-csr     Generate keys and certificate signing requests

  renew            Renew certificates for a Kubernetes cluster

 

Flags:

  -h, --help   help for certs

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm certs [command] --help" for more information about a command.

 

 

###############################

kubeadm upgrade --help

Upgrade your cluster smoothly to a newer version with this command

 

Usage:

  kubeadm upgrade [flags]

  kubeadm upgrade [command]

 

Available Commands:

  apply       Upgrade your Kubernetes cluster to the specified version

  diff        Show what differences would be applied to existing static pod manifests. See also: kubeadm upgrade apply --dry-run

  node        Upgrade commands for a node in the cluster

  plan        Check which versions are available to upgrade to and validate whether your current cluster is upgradeable. To skip the internet check, pass in the optional [version] parameter

 

Flags:

  -h, --help   help for upgrade

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm upgrade [command] --help" for more information about a command.

 

 

 

###############################

kubeadm config --help

 

There is a ConfigMap in the kube-system namespace called "kubeadm-config" that kubeadm uses to store internal configuration about the

cluster. kubeadm CLI v1.8.0+ automatically creates this ConfigMap with the config used with 'kubeadm init', but if you

initialized your cluster using kubeadm v1.7.x or lower, you must use the 'config upload' command to create this

ConfigMap. This is required so that 'kubeadm upgrade' can configure your upgraded cluster correctly.

 

Usage:

  kubeadm config [flags]

  kubeadm config [command]

 

Available Commands:

  images      Interact with container images used by kubeadm

  migrate     Read an older version of the kubeadm configuration API types from a file, and output the similar config object for the newer version

  print       Print configuration

 

Flags:

  -h, --help                help for config

      --kubeconfig string   The kubeconfig file to use when talking to the cluster. If the flag is not set, a set of standard locations can be searched for an existing kubeconfig file. (default "/etc/kubernetes/admin.conf")

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm config [command] --help" for more information about a command.

 

 

###############################

kubeadm token --help

 

This command manages bootstrap tokens. It is optional and needed only for advanced use cases.

 

In short, bootstrap tokens are used for establishing bidirectional trust between a client and a server.

A bootstrap token can be used when a client (for example a node that is about to join the cluster) needs

to trust the server it is talking to. Then a bootstrap token with the "signing" usage can be used.

bootstrap tokens can also function as a way to allow short-lived authentication to the API Server

(the token serves as a way for the API Server to trust the client), for example for doing the TLS Bootstrap.

 

What is a bootstrap token more exactly?

- It is a Secret in the kube-system namespace of type "bootstrap.kubernetes.io/token".

- A bootstrap token must be of the form "[a-z0-9]{6}.[a-z0-9]{16}". The former part is the public token ID,

   while the latter is the Token Secret and it must be kept private at all circumstances!

- The name of the Secret must be named "bootstrap-token-(token-id)".

 

You can read more about bootstrap tokens here:

  https://kubernetes.io/docs/admin/bootstrap-tokens/

 

Usage:

  kubeadm token [flags]

  kubeadm token [command]

 

Available Commands:

  create      Create bootstrap tokens on the server

  delete      Delete bootstrap tokens on the server

  generate    Generate and print a bootstrap token, but do not create it on the server

  list        List bootstrap tokens on the server

 

Flags:

      --dry-run             Whether to enable dry-run mode or not

  -h, --help                help for token

      --kubeconfig string   The kubeconfig file to use when talking to the cluster. If the flag is not set, a set of standard locations can be searched for an existing kubeconfig file. (default "/etc/kubernetes/admin.conf")

 

Global Flags:

      --add-dir-header           If true, adds the file directory to the header of the log messages

      --log-file string          If non-empty, use this log file

      --log-file-max-size uint   Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)

      --one-output               If true, only write logs to their native severity level (vs also writing to each lower severity level

      --rootfs string            [EXPERIMENTAL] The path to the 'real' host root filesystem.

      --skip-headers             If true, avoid header prefixes in the log messages

      --skip-log-headers         If true, avoid headers when opening log files

  -v, --v Level                  number for the log level verbosity

 

Use "kubeadm token [command] --help" for more information about a command


###############################

kubectl

kubectl controls the Kubernetes cluster manager.

 

Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/

 

Basic Commands (Beginner):

  create        Create a resource from a file or from stdin.

  expose        Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service

  run           Run a particular image on the cluster

  set           Set specific features on objects

 

Basic Commands (Intermediate):

  explain       Documentation of resources

  get           Display one or many resources

  edit          Edit a resource on the server

  delete        Delete resources by filenames, stdin, resources and names, or by resources and label selector

 

Deploy Commands:

  rollout       Manage the rollout of a resource

  scale         Set a new size for a Deployment, ReplicaSet or Replication Controller

  autoscale     Auto-scale a Deployment, ReplicaSet, or ReplicationController

 

Cluster Management Commands:

  certificate   Modify certificate resources.

  cluster-info  Display cluster info

  top           Display Resource (CPU/Memory/Storage) usage.

  cordon        Mark node as unschedulable

  uncordon      Mark node as schedulable

  drain         Drain node in preparation for maintenance

  taint         Update the taints on one or more nodes

 

Troubleshooting and Debugging Commands:

  describe      Show details of a specific resource or group of resources

  logs          Print the logs for a container in a pod

  attach        Attach to a running container

  exec          Execute a command in a container

  port-forward  Forward one or more local ports to a pod

  proxy         Run a proxy to the Kubernetes API server

  cp            Copy files and directories to and from containers.

  auth          Inspect authorization

  debug         Create debugging sessions for troubleshooting workloads and nodes

 

Advanced Commands:

  diff          Diff live version against would-be applied version

  apply         Apply a configuration to a resource by filename or stdin

  patch         Update field(s) of a resource

  replace       Replace a resource by filename or stdin

  wait          Experimental: Wait for a specific condition on one or many resources.

  kustomize     Build a kustomization target from a directory or a remote url.

 

Settings Commands:

  label         Update the labels on a resource

  annotate      Update the annotations on a resource

  completion    Output shell completion code for the specified shell (bash or zsh)

 

Other Commands:

  api-resources Print the supported API resources on the server

  api-versions  Print the supported API versions on the server, in the form of "group/version"

  config        Modify kubeconfig files

  plugin        Provides utilities for interacting with plugins.

  version       Print the client and server version information

 

Usage:

  kubectl [flags] [options]

 

Use "kubectl <command> --help" for more information about a given command.

Use "kubectl options" for a list of global command-line options (applies to all commands).

 

 

###############################

kubectl create --help

Create a resource from a file or from stdin.

 

JSON and YAML formats are accepted.

 

Examples:

  # Create a pod using the data in pod.json.

  kubectl create -f ./pod.json

 

  # Create a pod based on the JSON passed into stdin.

  cat pod.json | kubectl create -f -

 

  # Edit the data in docker-registry.yaml in JSON then create the resource using the edited data.

  kubectl create -f docker-registry.yaml --edit -o json

 

Available Commands:

  clusterrole         Create a ClusterRole.

  clusterrolebinding  Create a ClusterRoleBinding for a particular ClusterRole

  configmap           Create a configmap from a local file, directory or literal value

  cronjob             Create a cronjob with the specified name.

  deployment          Create a deployment with the specified name.

  ingress             Create an ingress with the specified name.

  job                 Create a job with the specified name.

  namespace           Create a namespace with the specified name

  poddisruptionbudget Create a pod disruption budget with the specified name.

  priorityclass       Create a priorityclass with the specified name.

  quota               Create a quota with the specified name.

  role                Create a role with single rule.

  rolebinding         Create a RoleBinding for a particular Role or ClusterRole

  secret              Create a secret using specified subcommand

  service             Create a service using specified subcommand.

  serviceaccount      Create a service account with the specified name

 

Options:

      --allow-missing-template-keys=true: If true, ignore any errors in templates when a field or map key is missing in

the template. Only applies to golang and jsonpath output formats.

      --dry-run='none': Must be "none", "server", or "client". If client strategy, only print the object that would be

sent, without sending it. If server strategy, submit server-side request without persisting the resource.

      --edit=false: Edit the API resource before creating

      --field-manager='kubectl-create': Name of the manager used to track field ownership.

  -f, --filename=[]: Filename, directory, or URL to files to use to create the resource

  -k, --kustomize='': Process the kustomization directory. This flag can't be used together with -f or -R.

  -o, --output='': Output format. One of:

json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.

      --raw='': Raw URI to POST to the server.  Uses the transport specified by the kubeconfig file.

      --record=false: Record current kubectl command in the resource annotation. If set to false, do not record the

command. If set to true, record the command. If not set, default to updating the existing annotation value only if one

already exists.

  -R, --recursive=false: Process the directory used in -f, --filename recu