blog icon indicating copy to clipboard operation
blog copied to clipboard

kubernetes kubesphere

Open yongheng2016 opened this issue 2 years ago • 0 comments

kubesphere kubernetes doc kubernetes api kubesphere 名词解释


install

  • 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

zsh: permission denied

其他 uninstall


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

以最简单直白的语言给我解释一下一下相关概念,最好给出案例,最佳实践,使用原因等

  1. workload中的ReplicaSet StatefulSets DaemonSet 的含义及区别
  2. 它们的各自使用场景是什么
  3. 给出具体案例解释,在什么场景下我该如何使用

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还有以下比较明显的区别或区分:

  1. 功能不同:Kubernetes原生API提供了基本的容器编排功能,例如Pod、Service、Deployment等;而Kubesphere扩展API提供了一些额外的功能,例如多租户支持、DevOps工具集成、应用商店等。

  2. 版本不同:Kubernetes和Kubesphere都有多个版本,不同版本的API可能会有所不同。用户需要根据自己使用的版本来确定具体的API路径和功能。

  3. 权限控制不同:Kubernetes原生API和Kubesphere扩展API都有自己的权限控制机制。用户需要根据自己的需求和实际情况来进行权限配置和管理。

需要注意的是,Kubesphere扩展API并不是Kubernetes原生API的替代品,而是在原生API的基础上提供了额外的功能。用户可以根据自己的需求选择使用原生API还是扩展API来管理容器化应用程序。

yongheng2016 avatar Feb 17 '23 02:02 yongheng2016