一、hosts配置加入harbor仓库地址
1 2 3 4
| 192.168.147.35 alpha-pack.51iwifi.com 192.168.195.3 k8s-alpha-node2 192.168.195.70 dev-harbor.51iwifi.com 192.168.195.2 alpha-harbor.51iwifi.com
|
二、docker地址修改
1
| vi /etc/docker/daemon.json
|
三、nfs搭建,master节点执行即可
路径:/k8s,文件
1).安装NFS服务
1 2
| env http_proxy=http://172.200.96.179:3128 yum install -y nfs-utils env http_proxy=http://172.200.96.179:3128 yum install -y rpcbind
|
2).设置共享文件夹
1 2
| mkdir -p /nfs/data/ chmod 755 /nfs/data
|
3).配置文件修改
1 2 3 4
| vim /etc/exports加入以下内容: /nfs/ *(async,insecure,no_root_squash,no_subtree_check,rw) /nfs/data/ *(async,insecure,no_root_squash,no_subtree_check,rw) 使配置生效:exportfs -r
|
4).启动服务
1 2 3 4
| systemctl start rpcbind systemctl start nfs systemctl enable rpcbind # 设置开机启动 systemctl enable nfs-server.service # 设置开机启动
|
5).把dev-harbor.51iwifi.com/k8s-depend/quay.io/external_storage/nfs-client-provisioner:latest镜像加载到各个节点上
6).kubectl create -f cluster-admin.rbac.yaml 创建权限(以下为cluster-admin.rbac.yaml内容)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: dcm-rbac name: k8s-admin namespace: kube-system
--- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: k8s-admin-crb roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: k8s-admin namespace: kube-system
7).kubectl create -f nfs-client-provisioner.yaml创建nfs-client-provisioner(以下为nfs-client-provisioner.yaml内容) kind: Deployment apiVersion: apps/v1 metadata: name: nfs-client-provisioner namespace: kube-system spec: replicas: 1 selector: matchLabels: app: nfs-client-provisioner strategy: type: Recreate template: metadata: labels: app: nfs-client-provisioner spec: serviceAccountName: k8s-admin containers: - name: nfs-client-provisioner image: dev-harbor.51iwifi.com/k8s-depend/quay.io/external_storage/nfs-client-provisioner:latest imagePullPolicy: IfNotPresent volumeMounts: - name: nfs-client-root mountPath: /persistentvolumes env: - name: PROVISIONER_NAME value: fuseim.pri/ifs - name: NFS_SERVER value: 172.20.131.251 - name: NFS_PATH value: /nfs/data volumes: - name: nfs-client-root nfs: server: 172.20.131.251 path: /nfs/data
|
8).kubectl create -f nfs-client-class.yaml 创建storageclass(以下为nfs-client-class.yaml内容)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: managed-nfs-storage provisioner: fuseim.pri/ifs 9).创建pvc使用对应nfs-client-provisioner验证nfs是否配置成功 kubectl create -f nfs-client-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-client-pvc namespace: kube-system spec: accessModes: - ReadWriteMany storageClassName: managed-nfs-storage resources: requests: storage: 100Mi
|
. 查看pvc 是否自动关联上pv
1
| kubectl delete pvc nfs-client-pvc -n kube-system 验证结束后删除pvc
|
四、consul pod创建
五、consul配置导出
1
| kubectl exec -it consul-0 consul kv export > test`date +%y%m%d`.json
|
六、consul配置导入
1 2 3
| kubectl cp testvideo.json consul-0:/ kubectl exec -it consul-0 sh consul kv import @testvideo.json
|