1. Pod基本使用
要求:
- 创建Mysql Pod,使用环境变量初始化root密码,创建一个普通用户和数据库
- 创建wordpress Pod,使用环境变量对接到Mysql,并初始化wordpres
- 为以上Pod设置livenessProbe, readlinessProbe, resource limit, request limit
-
创建Mysql Pod
apiVersion: v1 kind: Pod metadata: name: mysql-pod namespace: job spec: containers: - name: mysql image: mysql:8.0 imagePullPolicy: IfNotPresent env: - name: MYSQL_ROOT_PASSWORD value: '123456' - name: MYSQL_USER value: 'wordpress' - name: MYSQL_DATABASE value: 'wordpress' - name: MYSQL_PASSWORD value: 'wordpress' readinessProbe: initialDelaySeconds: 10 failureThreshold: 5 periodSeconds: 3 timeoutSeconds: 3 exec: command: ['/bin/sh', '-c', 'mysql -uroot -p123456 -e "select now()" '] livenessProbe: failureThreshold: 5 # 失败阈值5次 periodSeconds: 30 # 探测频率30s timeoutSeconds: 3 tcpSocket: port: 3306 resources: requests: memory: '100Mi' cpu: '250m' limits: memory: '500Mi' cpu: '500m'
-
创建wordpress pod
apiVersion: v1 kind: Pod metadata: name: wordpress-pod namespace: job labels: app: wordpress spec: containers: - name: wordpress image: wordpress:6.4 imagePullPolicy: IfNotPresent env: - name: WORDPRESS_DB_HOST value: '10.244.1.117' #这里填mysql pod的IP地址 - name: WORDPRESS_DB_NAME value: 'wordpress' - name: WORDPRESS_DB_USER value: 'root' - name: WORDPRESS_DB_PASSWORD value: '123456' ports: - name: http containerPort: 80 protocol: TCP readinessProbe: initialDelaySeconds: 10 httpGet: port: 80 timeoutSeconds: 5 livenessProbe: initialDelaySeconds: 10 # 等十秒再探测 timeoutSeconds: 5 # wordpress访问响应时间较长,需要设置每次探测超时时间 httpGet: port: 80 # 不写路径,默认为根 resources: requests: memory: '100Mi' cpu: '250m' limits: memory: '500Mi' cpu: '500m' --- apiVersion: v1 kind: Service metadata: name: wordpress-svc namespace: job spec: type: NodePort selector: app: wordpress # 标签选择器来确定绑定的后端Pod ports: - name: http port: 80 protocol: TCP targetPort: 80 nodePort: 31080
-
查看资源状态
kubectl get all -n job
-
访问nodeport映射地址