0%

Kubernetes 静态Pod设置

有些需求需要将Pod布署在固定的Node上面,这些Node不参与分配动态Pod,但是这些Node有非常强大固定的资源,主要用于布署诸如数据库、Redis等应用,因为这些应用需要大量读写磁盘,而PV并不适合这些应用,所以一般都是布署在固定的Node上,使用本地磁盘,提高读写速度。

而部署在固定Node上的Pod,我们称之为静态Pod。

一、布署

在所有Node中,都有一个目录叫/etc/kubernetes/manifests/,只要将Pod的定义yaml文件放进去即可自动启动一个静态Pod,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
apiVersion: v1
kind: Pod
metadata:
name: mysql
namespace: infra
labels:
name: mysql
spec:
containers:
- image: mysql:8
name: mysql
containerPort: 3306
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: %$338753kdkdjl^^
volumes:
- name: mysql
hostPath:
path: /deploy/data/mysql

二、注意事项

  1. 静态Pod不由master api server管理,也就是说,使用kubectl去删除静态pod是行不通的。
  2. 静态Pod和普通Pod一样,一样可以让Service匹配。