You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
3.4 KiB

3 years ago
# kubeadm 配置示例
## 单ControlPlane节点
```yaml
# 配置kubelet使用systemd作为cgroups驱动
2 years ago
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: lzt4rs.qj01ga221rmws3ip
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.0.20
bindPort: 6443
nodeRegistration:
criSocket: unix:///var/run/containerd/containerd.sock
imagePullPolicy: IfNotPresent
name: dev
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
3 years ago
---
2 years ago
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: 192.168.0.20:6443
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: ccr.ccs.tencentyun.com/kgcrio
3 years ago
kind: ClusterConfiguration
2 years ago
kubernetesVersion: v1.24.1
3 years ago
networking:
2 years ago
dnsDomain: cluster.local
3 years ago
podSubnet: 10.244.0.0/16
2 years ago
serviceSubnet: 10.96.0.0/12
scheduler: {}
3 years ago
```
## 基于堆叠etcd的cluster
```yaml
# 配置kubelet使用systemd作为cgroups驱动
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: stable
imageRepository: registry.bing89.com/kubernetes
controlPlaneEndpoint: 192.168.0.200:8443
apiServer:
certSANs:
- "k8smaster1"
- "k8smaster2"
- "k8smaster3"
- "192.168.0.200"
- "192.168.0.201"
- "192.168.0.202"
- "192.168.0.203"
networking:
podSubnet: 10.244.0.0/16
---
#配置kubeproxy使用ipvs。似乎不配置也行
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
EOF
```
## 基于外部etcd集群的cluster
```yaml
# 配置kubelet使用systemd作为cgroups驱动
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: stable
controlPlaneEndpoint: "192.168.0.200:8443"
imageRepository: registry.bing89.com/kubernetes
etcd:
external:
endpoints: ["https://192.168.0.211:2379","https://192.168.0.212:2379","https://192.168.0.213:2379"]
caFile: /etc/kubernetes/pki/etcd/ca.crt
certFile: /etc/kubernetes/pki/apiserver-etcd-client.crt
keyFile: /etc/kubernetes/pki/apiserver-etcd-client.key
apiServer:
certSANs: ["192.168.0.201","192.168.0.202","192.168.0.203"]
```
## 外部etcd集群配置
```yaml
# 配置kubelet使用systemd作为cgroups驱动
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
---
apiVersion: "kubeadm.k8s.io/v1beta2"
kind: ClusterConfiguration
imageRepository: registry.bing89.com/kubernetes
etcd:
local:
serverCertSANs:
- "192.168.0.211"
peerCertSANs:
- "192.168.0.211"
extraArgs:
initial-cluster: infra0=https://192.168.0.211:2380,infra1=https://192.168.0.212:2380,infra2=https://192.168.0.213:2380
initial-cluster-state: new
name: infra0
listen-peer-urls: https://192.168.0.211:2380
listen-client-urls: https://192.168.0.211:2379
advertise-client-urls: https://192.168.0.211:2379
initial-advertise-peer-urls: https://192.168.0.211:2380
```