实验手册-22-考前准备

步骤1 重置集群

bash

kubeadm reset
输入y确定继续

步骤2 修改主机名

bash

hostnamectl set-hostname master学号

将学号改成自己的学号后两位,如 master01

步骤3 初始化

把 192.168.192.215 换成自己的 IP

bash

kubeadm init --apiserver-advertise-address 192.168.192.215 --pod-network-cidr 10.244.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

步骤4 验证

bash

kubectl get node

查看节点状态是否为 Ready

节点列表

步骤1 查看污点

将 master35 换成自己的节点名称

bash

kubectl describe node master35 | grep Taint
污点

步骤2 去掉污点

bash

kubectl taint node master35 node-role.kubernetes.io/master:NoSchedule-
  • master35 换成自己的节点名
  • 注意最后有一个减号

出现以下提示代表成功:

步骤1 建立PV使用的目录

bash

mkdir /srv/mysql

所有提到学号的地方,都是指学号后两位,如01

建立PV,要求如下:

  • 名称为 mysql-pv-学号,例如mysql-pv-01
  • 类型为 hostPath,路径为 /srv/mysql
  • StorageClassName与名称相同,如mysql-pv-01

示例配置文件 pv.yaml

yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 1Gi
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mysql-pv
  hostPath:
    path: /srv/mysql

要求:

  • 名称为 mysql-pvc-学号,如 mysql-pvc-01
  • Storage Class Name 为 mysql-pv-学号

示例配置文件pvc.yaml

yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: mysql-pv

要求:

  • 创建名为 mysql-学号 的 Deployment
    • 定义一个卷,名为 mysql-pv
      • claim name 为 mysql-pvc-学号
    • 挂载卷 mysql-pv
      • 挂载路径为 /var/lib/mysql
    • 数据库的登录密码为 password学号,例如password01
  • 创建名为 mysql-学号 的 Service

示例配置文件 mysql.yaml

yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
  selector:
    app: mysql

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - image: mysql:5.6
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: password
          ports:
            - containerPort: 3306
              name: mysql
          volumeMounts:
            - name: mysql-pv
              mountPath: /var/lib/mysql
      volumes:
        - name: mysql-pv
          persistentVolumeClaim:
            claimName: mysql-pvc

验证

bash

kubectl get pod
kubectl get service

Pod 状态为 Running

bash

kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql-35 -ppassword35

注意

  • -h 参数后面是 Service 名称
  • -p 后面是数据库的登录密码

按照下图执行1~5条命令,并保留截图

bash

kubectl delete service mysql-学号
kubectl delete service mysql
kubectl delete deployment mysql-学号
kubectl delete deployment mysql
kubectl delete pvc mysql-pvc-学号
kubectl delete pvc mysql-pvc
kubectl delete pv mysql-pv-学号
kubectl delete pv mysql-pv