blog
blog copied to clipboard
kubernetes kubesphere
kubesphere kubernetes doc kubernetes api kubesphere 名词解释
- kubesphere install
- install(use docker desktop kubernetes )
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.1/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.1/cluster-configuration.yaml
https://github.com/kubesphere/console/blob/master/docs/access-backend.md
- 公开ks-apiserver服务,开启调试端口30881。然后就可以通过<node_ip>:<30881>端口访问ks-apiserver服务,命令如下
kubectl -n kubesphere-system patch svc ks-apiserver -p '{"spec":{"type":"NodePort","ports":[{"name":"ks-apiserver","port":80,"protocol":"TCP","targetPort":9090,"nodePort":30881}]}}'
- 调试
- 下载console代码
-
kubectl get pods -A
kubectl get svc/ks-console -n kubesphere-system
切换到 console/server/下建立 local_config.yaml 文件,用于指定当前本地调式的这份console代码调用那个后端,文件内容如
server:
apiServer:
url: http://[后端ip]:30881
wsUrl: ws://[后端ip]:30881
- 执行如下yarn命令:
# 下载依赖 $ yarn # 如果是console 3.0 版本执行 yarn lego 编译css,3.1版本不需要此句 $ yarn lego # 分别启动前后端 $ yarn dev:client $ yarn dev:server
kubesphere installation https://blog.csdn.net/qq_33909098/article/details/109078108
- uninstall
uninstall-kubesphere-from-k8s kubesphere-delete.sh
kubesphere-delete.sh 运行失败
chmod +x [SH file path]chmod +755 [SH file path] chmod +x /Users/test.sh
installing-kubesphere-on-minikube install-kubectl-macos
成功安装console无法访问 default-http-backend-5bf68ff9b8-xxxx CrashLoopBackOff https://github.com/kubesphere/ks-installer/issues/2038
kubectl get pod -A
kubectl describe pod default-http-backend-5d7c68c698-xxx -n kubesphere-controls-system
查看pod yaml文件
kubectl get pod default-http-backend-5bf68ff9b8-xxx -n kubesphere-controls-system -o yaml
编辑pod yaml文件
kubectl edit pod default-http-backend-5bf68ff9b8-xxx -n kubesphere-controls-system
QA
以最简单直白的语言给我解释一下一下相关概念,最好给出案例,最佳实践,使用原因等
- workload中的ReplicaSet StatefulSets DaemonSet 的含义及区别
- 它们的各自使用场景是什么
- 给出具体案例解释,在什么场景下我该如何使用
ReplicaSet、StatefulSet和DaemonSet都是k8s中用于管理Pod的控制器。它们的主要区别在于Pod的唯一性和部署策略。ReplicaSet用于管理无状态的Pod,可以水平扩展和缩容Pod数量;StatefulSet用于管理有状态的Pod,保证每个Pod的唯一性和稳定性;DaemonSet用于在每个节点上运行一个Pod,保证每个节点都有一个Pod在运行。
ReplicaSet适合无状态应用的部署,如web应用;StatefulSet适合有状态应用的部署,如数据库、缓存;DaemonSet适合需要在集群中每个节点上运行一个Pod的场景,如日志收集、监控等。
例如,如果你需要部署一个web应用,你可以使用ReplicaSet来管理Pod的数量,保证应用的可用性。如果你需要部署一个MySQL数据库,你可以使用StatefulSet来管理Pod的唯一性和稳定性。如果你需要在集群中收集日志,你可以使用DaemonSet来在每个节点上运行一个日志收集器。
Deployment 呢,和它们三个又有什么关系和区别,我该如何使用,请给出具体的场景和案例
Deployment是Kubernetes中用于管理Pod的控制器之一,它可以保证Pod的数量和状态与期望的一致,并且支持滚动更新和回滚操作。
Deployment和ReplicaSet之间的关系是,Deployment实际上是对ReplicaSet的封装,它可以自动创建和管理ReplicaSet。在创建Deployment时,需要指定Pod的模板,以及需要保证的Pod数量和更新策略。当需要更新Pod时,Deployment会自动创建一个新的ReplicaSet,并逐步将Pod从旧的ReplicaSet中删除并添加到新的ReplicaSet中,从而实现滚动更新。
和ReplicaSet相比,Deployment更加方便使用和管理,支持滚动更新和回滚操作,可以方便地管理应用的版本。通常情况下,我们使用Deployment来管理应用的部署。
例如,如果你需要部署一个web应用,在创建Deployment时,你可以指定Pod的模板、需要保证的Pod数量和更新策略。然后在更新应用时,你可以通过修改Deployment的模板或者更新策略来实现滚动更新或回滚操作。这样就可以方便地管理应用的版本和部署。
列举出原声api和扩展api系列接口的具体路径信息 以下是一些常见的Kubernetes原生API和Kubesphere扩展API的路径信息:
Kubernetes原生API:
- Pod: /api/v1/namespaces/{namespace}/pods
- Service: /api/v1/namespaces/{namespace}/services
- Deployment: /apis/apps/v1/namespaces/{namespace}/deployments
- ConfigMap: /api/v1/namespaces/{namespace}/configmaps
- Secret: /api/v1/namespaces/{namespace}/secrets
- Namespace: /api/v1/namespaces
- PersistentVolumeClaim: /api/v1/namespaces/{namespace}/persistentvolumeclaims
Kubesphere扩展API:
- Tenant: /kapis/kubefed/v1alpha2/namespaces/{namespace}/federatedtenants
- DevOps Project: /devops/api/v1/projects
- DevOps Pipeline: /devops/api/v1/pipelines
- Application: /kapis/devops/v1alpha3/namespaces/{namespace}/applications
- ApplicationRevision: /kapis/devops/v1alpha3/namespaces/{namespace}/applicationrevisions
- ApplicationTemplate: /kapis/devops/v1alpha3/namespaces/{namespace}/applicationtemplates
- HelmChart: /kapis/helm.kubesphere.io/v1alpha2/namespaces/{namespace}/helmcharts
- HelmRelease: /kapis/helm.kubesphere.io/v1alpha2/namespaces/{namespace}/helmreleases
- DevOps Integration: /devops/api/v1/integrations
需要注意的是,路径信息中的{namespace}是具体的命名空间名称,用户需要根据自己的实际情况进行替换。另外,Kubesphere的API路径可能会因版本不同而有所变化,用户需要根据自己使用的版本来确定具体的API路径。
/api/开头的是Kubernetes原生API,/kapis/开头的是Kubesphere扩展API。
除了路径前缀不同,Kubernetes原生API和Kubesphere扩展API还有以下比较明显的区别或区分:
-
功能不同:Kubernetes原生API提供了基本的容器编排功能,例如Pod、Service、Deployment等;而Kubesphere扩展API提供了一些额外的功能,例如多租户支持、DevOps工具集成、应用商店等。
-
版本不同:Kubernetes和Kubesphere都有多个版本,不同版本的API可能会有所不同。用户需要根据自己使用的版本来确定具体的API路径和功能。
-
权限控制不同:Kubernetes原生API和Kubesphere扩展API都有自己的权限控制机制。用户需要根据自己的需求和实际情况来进行权限配置和管理。
需要注意的是,Kubesphere扩展API并不是Kubernetes原生API的替代品,而是在原生API的基础上提供了额外的功能。用户可以根据自己的需求选择使用原生API还是扩展API来管理容器化应用程序。