我试图理解为什么kubernetes docs 建议在部署之前在一个配置文件中指定服务:
资源将按照它们在文件中出现的顺序创建.因此,最好先指定服务,因为这样可以确保调度程序可以在服务器创建服务时(例如部署)传播与服务关联的pod.
这是否意味着在kubernetes集群节点之间传播pod?
我使用以下配置进行测试,其中部署位于服务之前,并且在nod之间分配pod而没有任何问题.
apiVersion: apps/v1
kind: Deployment
metadata:
name: incorrect-order
namespace: test
spec:
selector:
matchLabels:
app: incorrect-order
replicas: 2
template:
metadata:
labels:
app: incorrect-order
spec:
containers:
- name: incorrect-order
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: incorrect-order
namespace: test
labels:
app: incorrect-order
spec:
type: NodePort
ports:
- port: 80
selector:
app: incorrect-order
Run Code Online (Sandbox Code Playgroud)
另一种解释是,在这种情况下,不会为pod设置一些带有服务URL的环境变量.但是,如果配置在一个文件中,如上例所示,它也可以正常工作.
您能否解释为什么在部署配置文件的情况下在部署之前指定服务更好?或者可能是一些过时的推荐.
有一个使用 Kotlin DSL 的 Gradle 6.X 多模块项目。
buildSrc功能用于在中心位置管理依赖版本。类似于此处描述的方法。
该项目使用内部服务器下载依赖项。它会导致两个地方的存储库设置配置重复:
buildSrc/build.gradle.kts:
plugins {
`kotlin-dsl`
}
repositories {
// The org.jetbrains.kotlin.jvm plugin requires a repository
// where to download the Kotlin compiler dependencies from.
maven {
url = uri("${extra.properties["custom.url"] as? String}")
credentials() {
username = extra.properties["custom.username"] as? String
password = extra.properties["custom.password"] as? String
}
}
}
Run Code Online (Sandbox Code Playgroud)
和根settings.gradle.kts:
...
gradle.projectsLoaded {
allprojects {
repositories {
maven {
url = uri("${extra.properties["custom.url"] as? String}")
credentials() {
username = extra.properties["custom.username"] …Run Code Online (Sandbox Code Playgroud)