福州网站建设fjfzwl,crm,阿里云做网站的代码,房屋租赁网站开发需求分析K8S的基础概念
1. 什么是K8S
K8S的全称是Kubernetes
K8S是一个开源的容器编排平台#xff0c;用于自动化部署、扩缩、管理容器化应用程序。
2. 集群和节点
集群#xff1a;K8S将多个机器统筹和管理起来#xff0c;彼此保持通讯#xff0c;这样的关系称之为集群。
节点…K8S的基础概念
1. 什么是K8S
K8S的全称是Kubernetes
K8S是一个开源的容器编排平台用于自动化部署、扩缩、管理容器化应用程序。
2. 集群和节点
集群K8S将多个机器统筹和管理起来彼此保持通讯这样的关系称之为集群。
节点集群中的机器称之为节点在集群中至少存在一个节点。
3. 控制面和普通节点
集群中的机器分为2种角色
控制面负责调度
普通节点负责干活运行容器 - 容器以Pod为单位在普通节点中运行 - 同一个Pod中的所有容器在同一个节点中运行
通常情况下要避免同一个机器边干活边调度。
所以负责调度的机器不会再负责干活也就是说一个集群中至少要存在两个节点一个调度、一个干活
但是如果负责干活的机器只有一个若该机器出现了故障就没有机器可以干活了。
所以理想的情况下至少要存在两个不同的干活节点也就是在K8S集群中存在3个节点一个调度、两个干活
4. K8S组件
在控制面中包含如下组件
1. API Server - 核心组件之一为集群各类资源提高同一个的接口HTTP REST
2. etcd - 分布式K-V数据库特点高一致性高可用容错好 - redis也是分布式K-V数据库特点读写性能好但是并不符合K8S的需要
3. kube-scheduler - 监听新Pod创建需求为其分配合适工作节点 - 考虑Pod的资源需求、调整条件、负载状况等尽量选出合适的工作节点
4. kube-controller-mange - 包含多个不同的“控制器”的管理器 - 可用创建、管理、监视“控制器”的工作情况
5. cloud-controller-mange - 创建、管理、监视“云服务”的工作情况
在工作节点中包含如下组件
1. kubelet - 接收、执行、监控、反馈来自控制面的调度Pod - 上报节点自身状态
2. kuke-proxy - 为Serive提供网络入口提供负载均衡调整网路规则
3. 容器运行时 - 比如 docker、containerd
5. K8S API
K8S API 是控制面中【API-Server】组件 提供的 HTTP API
K8S API 供用户、集群中不同的部分、集群外不同的组件相互通信
用户对集群的管理、配置、调度等操背后都是通过K8S API实现的
搭建K8S开发测试环境
所需一个UbuntuDocker的云服务器内存建议在4G及以上
此处搭建环境的方法是minikube
其他的搭建方法Microk8S、K3S等
1. 安装minikube
下载
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 安装
sudo install minikube-linux-amd64 /usr/local/bin/minikube
查看是否安装成功
minikube 2. 启动minikube
minikube start 出现类似下图的内容就代表安装成功了 在执行minikube过程中如果出现镜像下载失败的问题可以详见我的另一篇文章
minikube start下载镜像失败-CSDN博客
3. 执行kubectl
minikube kubectl
执行结果可以参考下面的内容
ubuntuVM-20-9-ubuntu:~$ minikube kubectl
kubectl controls the Kubernetes cluster manager.Find more information at: https://kubernetes.io/docs/reference/kubectl/Basic Commands (Beginner):create Create a resource from a file or from stdinexpose Take a replication controller, service, deployment or pod and expose it as a new Kubernetes servicerun Run a particular image on the clusterset Set specific features on objectsBasic Commands (Intermediate):explain Get documentation for a resourceget Display one or many resourcesedit Edit a resource on the serverdelete Delete resources by file names, stdin, resources and names, or by resources and label selectorDeploy Commands:rollout Manage the rollout of a resourcescale Set a new size for a deployment, replica set, or replication controllerautoscale Auto-scale a deployment, replica set, stateful set, or replication controllerCluster Management Commands:certificate Modify certificate resourcescluster-info Display cluster informationtop Display resource (CPU/memory) usagecordon Mark node as unschedulableuncordon Mark node as schedulabledrain Drain node in preparation for maintenancetaint Update the taints on one or more nodesTroubleshooting and Debugging Commands:describe Show details of a specific resource or group of resourceslogs Print the logs for a container in a podattach Attach to a running containerexec Execute a command in a containerport-forward Forward one or more local ports to a podproxy Run a proxy to the Kubernetes API servercp Copy files and directories to and from containersauth Inspect authorizationdebug Create debugging sessions for troubleshooting workloads and nodesevents List eventsAdvanced Commands:diff Diff the live version against a would-be applied versionapply Apply a configuration to a resource by file name or stdinpatch Update fields of a resourcereplace Replace a resource by file name or stdinwait Experimental: Wait for a specific condition on one or many resourceskustomize Build a kustomization target from a directory or URLSettings Commands:label Update the labels on a resourceannotate Update the annotations on a resourcecompletion Output shell completion code for the specified shell (bash, zsh, fish, or powershell)Subcommands provided by plugins:Other Commands:api-resources Print the supported API resources on the serverapi-versions Print the supported API versions on the server, in the form of group/versionconfig Modify kubeconfig filesplugin Provides utilities for interacting with pluginsversion Print the client and server version informationUsage: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).创建别名
alias kubectlminikube kubectl --4. 测试环境是否搭建成功
我们可以通过如下命令测试环境是否搭建成功
kubectl get pod -A
或者
minikube kubectl -- get pod -A