pvc 持久化存储卷声明
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: redis-claim
annotations:
volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Gi
sc 服务暴露
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
name: redis
spec:
type: NodePort
ports:
- name: redis
port: 6379
targetPort: redis
nodePort: 7801
selector:
name: redis
rc 副本控制
apiVersion: v1
kind: ReplicationController
metadata:
name: redis
spec:
replicas: 1
selector:
name: redis
template:
metadata:
name: redis
labels:
name: redis
spec:
containers:
- name: redis
image: redis:5.0.6-alpine
imagePullPolicy: IfNotPresent
command: ["redis-server"]
args: ["/usr/local/etc/redis/redis.conf"]
ports:
- name: redis
containerPort: 6379
volumeMounts:
- mountPath: /data
name: data
- mountPath: /usr/local/etc/redis #需定制自己的镜像
name: redis-config
livenessProbe: #存活探针
exec:
command:
- redis-cli
- ping
initialDelaySeconds: 30
timeoutSeconds: 5
readinessProbe: #就绪探针 如果Pod处于非就绪状态,那么它们将会被从service的load balancer中移除
exec:
command:
- redis-cli
- ping
initialDelaySeconds: 5
timeoutSeconds: 1
volumes:
- name: data
persistentVolumeClaim:
claimName: redis-claim
#emptyDir: {} #pod 离开该宿主机时会被清除,只能临时
- name: redis-config
configMap:
name: redis-config
items:
- key: redis.conf
path: redis.conf
创建配置及查看
kubectl create configmap redis-config --from-file=./redis.conf
kubectl get configmap redis-config -o yaml
这里个问题就是rc 里头configMap 的key 要跟path文件明一致,否则报 configmap references non-existent config key
配置command和args即可使用自定义配置,本人也尝试直接把配置放到挂载的nfs目录里头, 指定command运行也是奇葩的可以。
有谁比较敢兴趣可以跟我完善些环境配置的整理一个人比较低效