wiki/_next/data/Ie9t5zutrXP6Of75Cb5xF/tools.kubernetes.json
2022-07-29 15:41:17 +00:00

1 line
6.6 KiB
JSON

{"pageProps":{"metadata":{"date":"\"2021-06-13 14:37:01 +08:00\"","date_modified":"\"2021-06-14 22:42:48 +08:00\"","language":"en","source":""},"title":"Kubernetes","hast":{"type":"root","children":[{"type":"element","tagName":"nav","properties":{"className":"toc"},"children":[{"type":"element","tagName":"ol","properties":{"className":"toc-level toc-level-1"},"children":[]}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Kubernetes is a container orchestrator letting you manage hundreds of containers at a time.\nWhile managing multiple containers with engines such as Docker and Podman, it is not really feasible if you want hundreds of them.\n"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Kubernetes is composed of multiple components and can be intermingled with other related tools.\nFor this, pre-bundled solutions (also known as distributions) such as "},{"type":"element","tagName":"a","properties":{"href":"http://k3s.io/"},"children":[{"type":"text","value":"K3s"}]},{"type":"text","value":" exists with some related tools embedded to make installation easier.\n"}]},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Most installations feature the "},{"type":"element","tagName":"a","properties":{"href":"/cli.kubectl"},"children":[{"type":"text","value":"kubectl"}]},{"type":"text","value":" that controls the Kubernetes cluster.\nThis is the program that you'll most likely going to pay attention to.\n"}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"composed of multiple smaller components:\n"}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"kubelet runs on all nodes, managing nodes — i.e., notifying the API server where the nodes belongs to\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"kubeconfig is the term for a Kubernetes cluster configuration;\n mainly written in YAML file\n"}]}]}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Kubernetes uses the building blocks structure (or resources) that composes of simple blocks that can be combined to create complex operations\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"it also has extensibility mainly through exposing the API and letting you create custom resource definitions to fully extend Kubernetes with your app\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Kubernetes manages the cluster along with some resources\n"}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"the nodes which contain multiple pods"}]}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"nodes are categorized either as a master or a worker node\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"a master node is where the control plane is located\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"a worker node is where the data plane is located\n"}]}]}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"pods which is a collection of containers"}]},{"type":"text","value":";\n usually, they are managed indirectly with deployments or resource sets;\n while pods can run multiple containers, it often contains one container as a recommended practice\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"deployments create the specification of the application state"}]}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"replica sets ensure that pods are running at any given time even while replacing the pods"}]}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"configmaps manages secrets in the cluster"}]},{"type":"text","value":";\n this includes passing configurations between different pods;\n secrets are either set imperatively (in the command line) or declaratively (from a file)\n"}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"namespaces separates application from each other"}]},{"type":"text","value":", similarly to namespacing found in programming languages — e.g., Rust with modules, C++ namespaces, etc.\n"}]}]}]}]},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"while you can manage resources in the command line, you can create manifests that Kubernetes can simply apply\n"}]},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"think of it as declarative way of cluster management (i.e., with files) instead of imperative (i.e., invoking in the command line)\n"}]}]}]}]}]}]},"backlinks":[{"path":"/cli.kubectl","title":"Command line: kubectl"}]},"__N_SSG":true}