kind create cluster 默认会通过kind 生成配置文件,合并在宿主机的/root/.kube/config 文件中,然后指定kubectl 的上下文,这样可以直接于创建的集群交互。这个交互也只是局限于kubectl 其它命令还是在宿主机上。
不指定--config文件,创建的是单节点集群,大多数用户倾向于多节点集群,下面的配置文件可以实现这一简单的配置:
# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
Kind 还可以指定端口映射,添加extraPortMappings 指定宿主机可以直接访问
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30950
hostPort: 80
kind: Pod
apiVersion: v1
metadata:
name: foo
labels:
app: foo
spec:
containers:
- name: foo
image: hashicorp/http-echo:0.2.3
args:
- "-text=foo"
ports:
- containerPort: 5678
---
apiVersion: v1
kind: Service
metadata:
name: foo
spec:
type: NodePort
ports:
- name: http
nodePort: 30950
port: 5678 //service 和 pod 端口一致就不需要指定额外的target port 了。
selector:
app: foo