txsj 发表于 2023-10-17 16:11:19

Kubernetes和OpenStack到底是什么关系?

Kubernetes是基于容器Docker构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。也是一个将众多容器抽象为一台机器这样的服务。
OpenStack是云计算平台,提供IaaS的服务。

这两者到底是什么关系?

漂浮在爱里 发表于 2023-10-17 16:12:10

关于 ServiceAccounts 及其 Secrets 的重大变化

kubernetes v1.24.0 更新之后进行创建 ServiceAccount 不会自动生成 Secret 需要对其手动创建
创建 ServiceAccount

cat<<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: cby
namespace: default
EOF
查看 ServiceAccount

root@cby:~# kubectl get serviceaccounts cby
NAME                     SECRETS   AGE
cby                      0         9s
查看 ServiceAccount 详细详细,没有对 Token 进行创建

root@cby:~# kubectl describe serviceaccounts cby
Name:                cby
Namespace:         default
Labels:            <none>
Annotations:         <none>
Image pull secrets:<none>
Mountable secrets:   <none>
Tokens:            <none>
Events:            <none>
root@cby:~#

root@cby:~# kubectl get secrets
No resources found in default namespace.
root@cby:~#
创建 Secret 资源并与 ServiceAccount 关联

cat<<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: cby
annotations:
    kubernetes.io/service-account.name: "cby"
EOF
再次查看 ServiceAccount 已对 Secret 关联

root@cby:~# kubectl describe serviceaccounts cby
Name:                cby
Namespace:         default
Labels:            <none>
Annotations:         <none>
Image pull secrets:<none>
Mountable secrets:   <none>
Tokens:            cby
Events:            <none>
root@cby:~#
查看 Secret 详细详细

root@cby:~# kubectl get secrets cby
NAME   TYPE                                  DATA   AGE
cby    kubernetes.io/service-account-token   3      35s
root@cby:~#

root@cby:~# kubectl describe secrets cby
Name:         cby
Namespace:    default
Labels:       <none>
Annotations:kubernetes.io/service-account.name: cby
            kubernetes.io/service-account.uid: c6629b84-1c08-483d-9a12-c2930ac0a2fe

Type:kubernetes.io/service-account-token

Data
====

ca.crt:   1363 bytes
namespace:7 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IjRwMk02VU9leXU3N3lraUN6UVQ4R3I3Smw3eFhYdEVMX1Z2aTFjU2luSVEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImNieSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJjYnkiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJjNjYyOWI4NC0xYzA4LTQ4M2QtOWExMi1jMjkzMGFjMGEyZmUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpjYnkifQ.r0nHVPO-QY-1p0fwKx0p0AfkiCGpTZ8vGzE8ioDtih5cAP1ew3ABnrj01EqeIEn8vhz29i0NHtZfh5XtYttqjU6o_b1IGFtkW5uIwlxYX2gtmm9njsL2NM7YM6lM0BDfQXvYrpKUuWLQUR-8i79h-GH9WFydmEwnthdxit7uSMJIZuyZP0X0ebxWUg1GGHsqNPy514zXEyvTZh8vs4fVl5ROJbKzFuSuQ1TntXMDncHSf8DSJ7iHUZ0pD757ysHvFKH9l6IbGrt8GUvxWxjMvnNjclLozKgfLXQEOVei39VrPU5DtsPp9DU8C04Gn4TWFW_WsyEWM14lGsQEGD-2QA
root@cby:~#
删除 ServiceAccount 随之 Secret 一并自动删除

root@cby:~# kubectl delete serviceaccounts cby
serviceaccount "cby" deleted
root@cby:~#

root@cby:~# kubectl get serviceaccounts
root@cby:~# kubectl get secret
https://www.oiox.cn/
https://www.chenby.cn/
https://cby-chen.github.io/
https://blog.csdn.net/qq_33921750
https://my.oschina.net/u/3981543
https://www.zhihu.com/people/chen-bu-yun-2
https://segmentfault.com/u/hppyvyv6/articles
https://juejin.cn/user/3315782802482007
https://cloud.tencent.com/developer/column/93230
https://www.jianshu.com/u/0f894314ae2c
https://www.toutiao.com/c/user/token/MS4wLjABAAAAeqOrhjsoRZSj7iBJbjLJyMwYT5D0mLOgCoo4pEmpr4A/
CSDN、GitHub、知乎、开源中国、思否、掘金、简书、腾讯云、今日头条、个人博客、全网可搜《小陈运维》文章主要发布于微信公众号:《Linux运维交流社区》

本文使用 文章同步助手 同步

pxwwwd 发表于 2023-10-17 16:12:22

打个简单的比方,OpenStack相当于云计算的操作系统,Kubernetes相当于云计算的软件管理系统,Docker的容器相当于软件。当然实际上更复杂。

稍息立正 发表于 2023-10-17 16:13:18

OpenStack定位为 数据中心操作系统,面向基础设施资源,OpenStack不仅仅管理计算资源,还包括网络,存储资源的自动管理。
OpenStack = 计算资源管理(主要最成熟的是虚机) + 存储资源管理 + 网络资源管理
Kubernetes定位为基于容器的集群管理系统,直接面向cloudnative应用:
Kubernetes = 容器资源管理 + 集群编排
Kubernetes可以直接跑在裸机上,这个时候这些裸机上需要的存储,网络资源等都需要依赖手工配置,对于小规模数据中心或者业务稳定不变的应用没有问题,对于大规模数据中心或者应用频繁变化的应用,仍然依赖手工就非常不方便了,
所以采用OpenStack+Kubernetes 是目前相对完整的云应用解决方案栈

youxibiao 发表于 2023-10-17 16:13:35

一句话,Kubernetes 面向应用层,变革的是业务架构,而 OpenStack 面向资源层,改变的是资源供给模式。使用容器且集群规模不大,直接用 Kubenetes 就可以;集群规模大,不管应用是否只是跑在容器中,都是 OpenStack + Kubernetes 更好。
OpenStack + Kubernetes 是各取所长,并不只是因为惯性,而是对于多租户需求来说,Container(容器)的隔离性还需要加强,需要加一层 VM(虚拟机) 来弥补,而 OpenStack 是很好的方案。不过,VM + Container 的模式,必然有性能的损耗,所以 OpenStack 基金会也推出一个项目叫 Kata Containers,希望减少虚拟化的开销,兼顾容器的性能和隔离性。
永恒的只有变化,未来的业务都会运行在云上,容器是走向 DevOps、Cloud Native(云原生)的标准工具,已经开始走向平凡,而 Kubernetes 的编排能力,让容器能够落地到业务应用中,所以我们看到 Docker、Mesos、OpenStack 以及很多公有云、私有云服务商,都在支持 Kubernetes,大家都加入了 CNCF(云原生计算基金会)。
总结起来,OpenStack 是兼容传统的架构,而 Kubernetes 是面向未来的架构。
最后,计算开源云这几年发展很快,从这个问题提出到现在,社区又有了很多变化。所以要修正一个观点:Kubernetes 支持的容器运行时不仅仅是 Docker,也包括 Rkt,当然 Docker 更加流行。
欢迎免费试用网易产品
关于我们:
网易数帆产品限时开放试用中,立即0成本体验!
我们帮助各行业客户数字化转型升级,成功实现业务增长。点击查看部分案例,解锁企业转型新思路:
中国工商银行 X 网易数帆中国南方电网 X 网易数帆浙江电信 X 网易数帆

vfi10863 发表于 2023-10-17 16:14:25

简单的说,kubernetes是管理container的工具,openstack是管理VM的工具。
container可以运行在物理机上,也可以运行在VM上。所以kubernetes不是需要openstack的支持。但对于云计算来说,很多IasS都通过openstack来管理虚拟机。然后用户可以在这些虚拟机上运行docker,可以通过kubernetes进行管理。
不过kubernetes虽然是开源的,但它毕竟是为GCE服务的,Google其实并没有多少动力去支持其他平台的。
页: [1]
查看完整版本: Kubernetes和OpenStack到底是什么关系?