貿易協議後 中國批准兩項美國基改作物進口

摘錄自2019年12月31日中央社報導

美中兩國日前達成第一階段貿易協議後,中國農業部通報,中方最新批准兩項美國基因改造農產品進口。業界人士說,此事將進一步拓寬中國進口美國農產品的管道。

綜合北京新浪網等媒體報導,中國農業部30日在官網公布「2019年農業轉基因(基因改造)生物安全證書(進口)批准清單」,包括12個作物品種。

據報導,其中新增加兩項美國基改農產品,分別是美國陶氏益農(Dow AgroSciences)的抗蟲大豆,以及陶氏益農與美國農業部農業研究中心、太平洋盆地農業研究中心、夏威夷大學聯合申請的抗病番木瓜。

其餘10種基改作物則屬續申請,包括巴斯夫開發的玉米、大豆、油菜籽;拜耳旗下的孟山都遠東有限公司的大豆、棉花和甜菜以及杜邦子公司先鋒的大豆等。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

廢氣洗滌塔,叫得動, 找得到的專業廠商‎

※選擇示波器的10 項考量因素

無塵擦拭紙各大品牌廠商販售比價網!

飲水機品牌迷思?? 有牌代表最好,錯! 必須先了解用途才能買對開水機!

※什麼規格的隔熱紙能有效提升冷房效果?

※快速搞懂「塑膠射出原理」

附010.Kubernetes永久存儲之GlusterFS超融合部署

一 前期準備

1.1 基礎知識


在Kubernetes中,使用GlusterFS文件系統,操作步驟通常是:

創建brick–>創建volume–>創建PV–>創建PVC–>Pod掛載PVC

如果要創建多個PV,則需要手動重複執行,可通過Heketi管理glusterfs。

Heketi是用來管理GlusterFS卷的生命周期的,並提供了一個RESTful API接口供Kubernetes調用,因為GlusterFS沒有提供API調用的方式,所以我們藉助heketi。通過Heketi,Kubernetes可以動態配置GlusterFS卷,Heketi會動態在集群內選擇bricks創建所需的volumes,確保數據的副本會分散到集群不同的故障域內,同時Heketi還支持GlusterFS多集群管理,便於管理員對GlusterFS進行操作。

Heketi要求在每個glusterfs節點上配備裸磁盤,用於Heketi創建PV和VG。通過Hekete,Kubernetes中使用PV步驟為:

創建StorageClass–>創建PVC–>Pod掛載PVC

這種方式稱為基於StorageClass的動態資源供應。

提示:本實驗基於Kubernetes部署glusterfs,同時glusterfs管理組件Heketi也使用Kubernetes部署。

1.2 架構示意



提示:本實驗不涉及Kubernetes部署,Kubernetes部署參考001-019。

1.3 相關規劃






主機

IP

磁盤

備註

k8smaster01

172.24.8.71

Kubernetes master節點

k8smaster02

172.24.8.72

Kubernetes master節點

k8smaster03

172.24.8.73

Kubernetes master節點

k8snode01

172.24.8.74

sdb

Kubernetes node節點

glusterfs節點

k8snode02

172.24.8.75

sdb

Kubernetes node節點

glusterfs節點

k8snode03

172.24.8.76

sdb

Kubernetes node節點

glusterfs節點

磁盤規劃

k8snode01 k8snode02 k8snode03
PV sdb1 sdb1 sdb1





1.4 部署條件

超融合部署需要具有已經部署的Kubernetes集群管理訪問權限。如果Kubernetes節點滿足以下要求,則可以選擇將GlusterFS作為超融合服務部署:

  • 必須至少有三個節點用於glusterfs;
  • 每個節點必須至少連接一個裸磁盤設備,以供heketi使用。這些設備上不得包含任何數據,heketi將會格式化和分區此設備;
  • 每個節點必須打開以下端口才能進行GlusterFS通信:
    • 2222:GlusterFS pod的sshd端口;
    • 24007:GlusterFS守護程序;
    • 24008:GlusterFS管理;
    • 49152——49251:主機上每個卷的每個brick都需要有獨立的端口。對於每塊新brick,將從49152開始使用一個新端口。建議每台主機的默認範圍為49152-49251,也可根據需要進行調整。

  • 必須加載以下內核模塊:
    • dm_snapshot
    • dm_mirror
    • dm_thin_pool

  • 對於內核模塊,可通過lsmod | grep <name>查看模塊是否存在,並modprobe <name>加載給定的模塊。
  • 每個節點都要求該mount.glusterfs命令可用。在所有基於Red Hat的操作系統下,此命令由glusterfs-fuse軟件包提供。


注意:節點上安裝的GlusterFS客戶端版本應盡可能接近服務器的版本。要獲取已安裝的版本,可通過glusterfs –version或kubectl exec <pod> — glusterfs –version命令查看。

1.5 其他準備


所有節點NTP配置;

所有節點添加相應主機名解析:

  1 172.24.8.71 k8smaster01
  2 172.24.8.72 k8smaster02
  3 172.24.8.73 k8smaster03
  4 172.24.8.74 k8snode01
  5 172.24.8.75 k8snode02
  6 172.24.8.76 k8snode03



注意:若非必要,建議關閉防火牆和SELinux。

二 規劃裸設備

2.1 確認磁盤

  1 [root@k8snode01 ~]# fdisk /dev/sdb -l		#檢查sdb是否為裸磁盤

三 安裝glusterfs-fuse

3.1 安裝相應RPM源

  1 [root@k8snode01 ~]# yum -y install centos-release-gluster
  2 [root@k8snode01 ~]# yum -y install glusterfs-fuse		#安裝glusterfs-fuse



提示:k8snode01、k8snode02、k8snode03類似操作,根據1.4要求安裝glusterfs-fuse組件;

安裝相應源之後,會在/etc/yum.repos.d/目錄多出文件CentOS-Storage-common.repo,內容如下:

# CentOS-Storage.repo

#

# Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more

# information




[centos-storage-debuginfo]

name=CentOS-$releasever – Storage SIG – debuginfo

baseurl=http://debuginfo.centos.org/$contentdir/$releasever/storage/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

3.2 加載相應模塊

  1 [root@k8snode01 ~]# cat > /etc/sysconfig/modules/glusterfs.modules <<EOF
  2 #!/bin/bash
  3 
  4 for kernel_module in dm_snapshot dm_mirror dm_thin_pool;do
  5     /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
  6     if [ \$? -eq 0 ]; then
  7         /sbin/modprobe \${kernel_module}
  8     fi
  9 done;
 10 EOF
 11 [root@k8snode01 ~]# chmod +x /etc/sysconfig/modules/glusterfs.modules
 12 [root@k8snode01 ~]# lsmod |egrep "dm_snapshot|dm_mirror|dm_thin_pool"	#所有glusterfs node節點檢查



提示:可通過modprobe <name>加載給定的模塊。

四 Kubernetes部署glusterfs

4.1 Node tag

  1 [root@k8smaster01 ~]# kubectl label nodes k8snode01 storagenode=glusterfs
  2 [root@k8smaster01 ~]# kubectl label nodes k8snode02 storagenode=glusterfs
  3 [root@k8smaster01 ~]# kubectl label nodes k8snode03 storagenode=glusterfs




提示:在後續使用DaemonSet部署時候kube-templates/glusterfs-daemonset.yaml存在如下針對label的Selector:

spec:

nodeSelector:

storagenode: glusterfs

4.2 下載glusterfs-Kubernetes

  1 [root@k8smaster01 ~]# yum -y install git
  2 [root@k8smaster01 ~]# git clone https://github.com/gluster/gluster-kubernetes.git


4.3 修改glusterfs拓撲

  1 [root@k8smaster01 ~]# cd gluster-kubernetes/deploy/
  2 [root@k8smaster01 deploy]# cp topology.json.sample topology.json
  3 [root@k8smaster01 deploy]# vi topology.json


  1 {
  2   "clusters": [
  3     {
  4       "nodes": [
  5         {
  6           "node": {
  7             "hostnames": {
  8               "manage": [
  9                 "k8snode01"
 10               ],
 11               "storage": [
 12                 "172.24.8.74"
 13               ]
 14             },
 15             "zone": 1
 16           },
 17           "devices": [
 18             "/dev/sdb"
 19           ]
 20         },
 21         {
 22           "node": {
 23             "hostnames": {
 24               "manage": [
 25                 "k8snode02"
 26               ],
 27               "storage": [
 28                 "172.24.8.75"
 29               ]
 30             },
 31             "zone": 1
 32           },
 33           "devices": [
 34             "/dev/sdb"
 35           ]
 36         },
 37         {
 38           "node": {
 39             "hostnames": {
 40               "manage": [
 41                 "k8snode03"
 42               ],
 43               "storage": [
 44                 "172.24.8.76"
 45               ]
 46             },
 47             "zone": 1
 48           },
 49           "devices": [
 50             "/dev/sdb"
 51           ]
 52         }
 53       ]
 54     }
 55   ]
 56 }


提示:heketi配置文件及介紹參考《附009.Kubernetes永久存儲之GlusterFS獨立部署》。

若需要修改heketi的暴露方式,若需要修改為NodePort,可參考https://lichi6174.github.io/glusterfs-heketi/。

所有部署相關yaml位於/root/gluster-kubernetes/deploy/kube-templates,本實驗採用默認參數。

4.4 配置heketi

  1 [root@k8smaster01 deploy]# cp heketi.json.template heketi.json
  2 [root@k8smaster01 deploy]# vi heketi.json
  3 {
  4     "_port_comment": "Heketi Server Port Number",
  5     "port" : "8080",
  6 
  7     "_use_auth": "Enable JWT authorization. Please enable for deployment",
  8     "use_auth" : true,				#開啟用戶認證
  9 
 10     "_jwt" : "Private keys for access",
 11     "jwt" : {
 12         "_admin" : "Admin has access to all APIs",
 13         "admin" : {
 14             "key" : "admin123"			#管理員密碼
 15         },
 16         "_user" : "User only has access to /volumes endpoint",
 17         "user" : {
 18             "key" : "xianghy"			#用戶密碼
 19         }
 20     },
 21 
 22     "_glusterfs_comment": "GlusterFS Configuration",
 23     "glusterfs" : {
 24 
 25         "_executor_comment": "Execute plugin. Possible choices: mock, kubernetes, ssh",
 26         "executor" : "${HEKETI_EXECUTOR}",	        #本實驗使用Kubernetes方式
 27 
 28         "_db_comment": "Database file name",
 29         "db" : "/var/lib/heketi/heketi.db",	        #heketi數據存儲
 30 
 31         "kubeexec" : {
 32             "rebalance_on_expansion": true
 33         },
 34 
 35         "sshexec" : {
 36             "rebalance_on_expansion": true,
 37             "keyfile" : "/etc/heketi/private_key",
 38             "port" : "${SSH_PORT}",
 39             "user" : "${SSH_USER}",
 40             "sudo" : ${SSH_SUDO}
 41         }
 42     },
 43 
 44     "backup_db_to_kube_secret": false
 45 }


4.5 相關修正


新版Kubernetes的# kubectl get pod命令無–show-all選項,需要如下操作修正部署gk-deploy腳本。

  1 [root@k8smaster01 deploy]# vi gk-deploy
  2 924 #heketi_pod=$(${CLI} get pod --no-headers --show-all --selector="heketi" | awk '{print $1}')
  3 925 heketi_pod=$(${CLI} get pod --no-headers --selector="heketi" | awk '{print $1}')






由於國內glusterfs鏡像可能無法pull,建議通過VPN等方式提前pull鏡像,然後上傳至所有glusterfs node節點。

  1 [root@VPN ~]# docker pull gluster/gluster-centos:latest
  2 [root@VPN ~]# docker pull heketi/heketi:dev
  3 [root@VPN ~]# docker save -o gluster_latest.tar gluster/gluster-centos:latest
  4 [root@VPN ~]# docker save -o heketi_dev.tar heketi/heketi:dev
  5 [root@k8snode01 ~]# docker load -i gluster_latest.tar
  6 [root@k8snode01 ~]# docker load -i heketi_dev.tar
  7 [root@k8snode01 ~]# docker images
  8 


4.6 正式部署

  1 [root@k8smaster01 deploy]# ./gk-deploy -h			#查看部署參數
  2 [root@k8smaster01 deploy]# kubectl create ns heketi		#建議部署在獨立的namespace中
  3 [root@k8smaster01 deploy]# ./gk-deploy -g -n heketi topology.json --admin-key admin123 --user-key xianghy
  4 ……
  5 Do you wish to proceed with deployment?
  6 
  7 [Y]es, [N]o? [Default: Y]: y





提示:部署腳本更多參數參考:https://github.com/gluster/gluster-kubernetes/blob/master/deploy/gk-deploy。

注意:若部署失敗,需要通過下方式徹底刪除后重新部署:

  1 [root@k8smaster01 deploy]# ./gk-deploy --abort --admin-key admin123 --user-key xianghy -y -n heketi
  2 [root@k8smaster01 deploy]# kubectl delete -f kube-templates/ -n heketi



glusterfs node節點需要執行如下徹底清理:

  1 [root@k8snode01 ~]# dmsetup ls
  2 [root@k8snode01 ~]# dmsetup remove_all
  3 [root@k8snode01 ~]# rm -rf /var/log/glusterfs/
  4 [root@k8snode01 ~]# rm -rf /var/lib/heketi
  5 [root@k8snode01 ~]# rm -rf /var/lib/glusterd/
  6 [root@k8snode01 ~]# rm -rf /etc/glusterfs/
  7 [root@k8snode01 ~]# dd if=/dev/zero of=/dev/sdb bs=512k count=1
  8 [root@k8snode01 ~]# wipefs -af /dev/sdb


4.7 Kubernetes集群查看驗證

  1 [root@k8smaster01 ~]# kubectl get nodes --show-labels | grep -E 'NAME|node'
  2 [root@k8smaster01 ~]# kubectl get all -n heketi




  1 [root@k8smaster01 ~]# kubectl get pods -o wide -n heketi



4.8 gluster集群查看驗證

  1 [root@k8smaster01 ~]# kubectl exec -it heketi-65f4555d74-72hrf -n heketi -- heketi-cli cluster list --user admin --secret admin123								#集群列表
  2 [root@k8smaster01 ~]# kubectl -n heketi exec -ti heketi-65f4555d74-72hrf /bin/bash                               [root@heketi-65f4555d74-72hrf /]# heketi-cli cluster list --user admin --secret admin123	#進入heketi容器查看
  3 [root@k8smaster01 ~]# curl http://10.254.111.219:8080/hello
  4 Hello from Heketi



注意:使用4.6腳本為一鍵部署,也可使用gluster-kubernetes/deploy/目錄下的文件,分開逐步部署,整理部署思路如下:

  1. 使用glusterfs-daemonset.json部署glusterfs DaemonSet;
  2. 對node節點進行打標籤;
  3. 使用heketi-service-account.json部署Heketi的服務帳戶;
  4. 對Heketi所創建的服務帳戶授權;
  5. 創建secret;
  6. 轉發本地8080端口至deploy-heketi。


獨立部署完整過程參考:https://jimmysong.io/kubernetes-handbook/practice/using-heketi-gluster-for-persistent-storage.html。

五 安裝heketi-cli


由於在master節點管理heketi需要進入heketi容器或者使用kubectl exec -ti 方式,建議直接在master節點安裝heketi客戶端,直接管理、

5.1 安裝heketi服務

  1 [root@k8smaster01 ~]# yum -y install centos-release-gluster
  2 [root@k8smaster01 ~]# yum -y install heketi-client


5.2 配置heketi

  1 [root@k8smaster01 ~]# echo "export HEKETI_CLI_SERVER=http://$(kubectl get svc heketi -n heketi -o go-template='{{.spec.clusterIP}}'):8080" >> /etc/profile.d/heketi.sh
  2 [root@k8smaster01 ~]# echo "alias heketi-cli='heketi-cli --user admin --secret admin123'" >> ~/.bashrc
  3 [root@k8smaster01 ~]# source /etc/profile.d/heketi.sh
  4 [root@k8smaster01 ~]# source ~/.bashrc
  5 [root@k8smaster01 ~]# echo $HEKETI_CLI_SERVER
  6 http://heketi:8080


5.3 集群管理

  1 [root@k8smaster01 ~]# heketi-cli cluster list
  2 Clusters:
  3 Id:67004a06fbcb4fa525bcec1fbaa9ef2d [file][block]
  4 [root@k8smaster01 ~]# heketi-cli cluster info 67004a06fbcb4fa525bcec1fbaa9ef2d	#集群詳細信息
  5 Cluster id: 67004a06fbcb4fa525bcec1fbaa9ef2d
  6 Nodes:
  7 40cdd4c1d0c389939193d6dea3c5bfe8
  8 62873c54cf61025fda91e6d44433378b
  9 d48986357840d28653304e7170599da5
 10 Volumes:
 11 5f15f201d623e56b66af56313a1975e7
 12 Block: true
 13 
 14 File: true
 15 [root@k8smaster01 ~]# heketi-cli topology info 67004a06fbcb4fa525bcec1fbaa9ef2d	#查看拓撲信息
 16 [root@k8smaster01 ~]# heketi-cli node list					        #查看所有node
 17 Id:40cdd4c1d0c389939193d6dea3c5bfe8     Cluster:67004a06fbcb4fa525bcec1fbaa9ef2d
 18 Id:62873c54cf61025fda91e6d44433378b     Cluster:67004a06fbcb4fa525bcec1fbaa9ef2d
 19 Id:d48986357840d28653304e7170599da5     Cluster:67004a06fbcb4fa525bcec1fbaa9ef2d
 20 [root@k8smaster01 ~]# heketi-cli node info 40cdd4c1d0c389939193d6dea3c5bfe8  	#node節點信息
 21 [root@k8smaster01 ~]# heketi-cli volume create --size=2 --replica=2		        #默認為3副本的replica模式



  1 [root@k8smaster01 ~]# heketi-cli volume list					#列出所有卷
  2 [root@k8smaster01 ~]# heketi-cli volume info fc296ab350dcc36e00dd3b3643a04645	#卷信息
  3 [root@k8smaster01 ~]# heketi-cli volume delete fc296ab350dcc36e00dd3b3643a04645	#刪除卷


六 Kubernetes動態掛載glusterfs

6.1 StorageClass動態存儲


kubernetes共享存儲provider模式:

靜態模式(Static):集群管理員手工創建PV,在定義PV時設置後端存儲的特性;

動態模式(Dynamic):集群管理員不需要手工創建PV,而是通過StorageClass的設置對後端存儲進行描述,標記為某種”類型(Class)”;此時要求PVC對存儲的類型進行說明,系統將自動完成PV的創建及與PVC的綁定;PVC可以聲明Class為””,說明PVC禁止使用動態模式。

基於StorageClass的動態存儲供應整體過程如下圖所示:


  1. 集群管理員預先創建存儲類(StorageClass);
  2. 用戶創建使用存儲類的持久化存儲聲明(PVC:PersistentVolumeClaim);
  3. 存儲持久化聲明通知系統,它需要一個持久化存儲(PV: PersistentVolume);
  4. 系統讀取存儲類的信息;
  5. 系統基於存儲類的信息,在後台自動創建PVC需要的PV;
  6. 用戶創建一個使用PVC的Pod;
  7. Pod中的應用通過PVC進行數據的持久化;
  8. 而PVC使用PV進行數據的最終持久化處理。


提示:關於Kubernetes的部署參考《附003.Kubeadm部署Kubernetes》。

6.2 定義StorageClass


關鍵字說明:

  • provisioner:表示存儲分配器,需要根據後端存儲的不同而變更;
  • reclaimPolicy: 默認即”Delete”,刪除pvc后,相應的pv及後端的volume,brick(lvm)等一起刪除;設置為”Retain”時則保留數據,若需刪除則需要手工處理;
  • resturl:heketi API服務提供的url;
  • restauthenabled:可選參數,默認值為”false”,heketi服務開啟認證時必須設置為”true”;
  • restuser:可選參數,開啟認證時設置相應用戶名;
  • secretNamespace:可選參數,開啟認證時可以設置為使用持久化存儲的namespace;
  • secretName:可選參數,開啟認證時,需要將heketi服務的認證密碼保存在secret資源中;
  • clusterid:可選參數,指定集群id,也可以是1個clusterid列表,格式為”id1,id2”;
  • volumetype:可選參數,設置卷類型及其參數,如果未分配卷類型,則有分配器決定卷類型;如”volumetype: replicate:3”表示3副本的replicate卷,”volumetype: disperse:4:2”表示disperse卷,其中‘4’是數據,’2’是冗餘校驗,”volumetype: none”表示distribute卷


提示:關於glusterfs各種不同類型的卷見《004.RHGS-創建volume》。

  1 [root@k8smaster01 ~]# echo -n "admin123" | base64		#將密碼轉換為64位編碼
  2 YWRtaW4xMjM=
  3 [root@k8smaster01 ~]# mkdir -p heketi
  4 [root@k8smaster01 ~]# cd heketi/
  5 [root@k8smaster01 ~]# vi heketi-secret.yaml			#創建用於保存密碼的secret
  6 apiVersion: v1
  7 kind: Secret
  8 metadata:
  9   name: heketi-secret
 10   namespace: heketi
 11 data:
 12   # base64 encoded password. E.g.: echo -n "mypassword" | base64
 13   key: YWRtaW4xMjM=
 14 type: kubernetes.io/glusterfs
 15 [root@k8smaster01 heketi]# kubectl create -f heketi-secret.yaml	#創建heketi
 16 [root@k8smaster01 heketi]# kubectl get secrets -n heketi
 17 NAME                                 TYPE                                  DATA   AGE
 18 default-token-6n746                  kubernetes.io/service-account-token   3      144m
 19 heketi-config-secret                 Opaque                                3      142m
 20 heketi-secret                        kubernetes.io/glusterfs               1      3m1s
 21 heketi-service-account-token-ljlkb   kubernetes.io/service-account-token   3      143m
 22 [root@kubenode1 heketi]# vim gluster-heketi-storageclass.yaml	#正式創建StorageClass
 23 apiVersion: storage.k8s.io/v1
 24 kind: StorageClass
 25 metadata:
 26   name: gluster-heketi-storageclass
 27 parameters:
 28   resturl: "http://10.254.111.219:8080"
 29   clusterid: "67004a06fbcb4fa525bcec1fbaa9ef2d"
 30   restauthenabled: "true"					#若heketi開啟認證此處也必須開啟auth認證
 31   restuser: "admin"
 32   secretName: "heketi-secret"					#name/namespace與secret資源中定義一致
 33   secretNamespace: "heketi"
 34   volumetype: "replicate:3"
 35 provisioner: kubernetes.io/glusterfs
 36 reclaimPolicy: Delete
 37 [root@k8smaster01 heketi]# kubectl create -f gluster-heketi-storageclass.yaml



注意:storageclass資源創建后不可變更,如修改只能刪除后重建。

  1 [root@k8smaster01 heketi]# kubectl get storageclasses		#查看確認
  2 NAME                          PROVISIONER               AGE
  3 gluster-heketi-storageclass   kubernetes.io/glusterfs   85s
  4 [root@k8smaster01 heketi]# kubectl describe storageclasses gluster-heketi-storageclass




6.3 定義PVC

  1 [root@k8smaster01 heketi]# vi gluster-heketi-pvc.yaml
  2 apiVersion: v1
  3 kind: PersistentVolumeClaim
  4 metadata:
  5   name: gluster-heketi-pvc
  6   annotations:
  7     volume.beta.kubernetes.io/storage-class: gluster-heketi-storageclass
  8 spec:
  9   accessModes:
 10   - ReadWriteOnce
 11   resources:
 12     requests:
 13       storage: 1Gi


注意:accessModes可有如下簡寫:

  • ReadWriteOnce:簡寫RWO,讀寫權限,且只能被單個node掛載;
  • ReadOnlyMany:簡寫ROX,只讀權限,允許被多個node掛載;
  • ReadWriteMany:簡寫RWX,讀寫權限,允許被多個node掛載。


  1 [root@k8smaster01 heketi]# kubectl create -f gluster-heketi-pvc.yaml -n heketi
  2 [root@k8smaster01 heketi]# kubectl get pvc -n heketi
  3 [root@k8smaster01 heketi]# kubectl describe pvc gluster-heketi-pvc -n heketi
  4 [root@k8smaster01 heketi]# kubectl get pv -n heketi
  5 [root@k8smaster01 heketi]# kubectl describe pv pvc-ca949559-094a-11ea-8b3c-000c29fa7a79 -n heketi




  1 [root@k8smaster01 heketi]# kubectl describe endpoints glusterfs-dynamic-ca949559-094a-11ea-8b3c-000c29fa7a79 -n heketi




提示:由上可知:PVC狀態為Bound,Capacity為1G。查看PV詳細信息,除容量,引用storageclass信息,狀態,回收策略等外,同時可知GlusterFS的Endpoint與path。EndpointsName為固定格式:glusterfs-dynamic-PV_NAME,且endpoints資源中指定了掛載存儲時的具體地址。

6.4 確認查看


通過5.3所創建的信息:

  • volume與brick已經創建;
  • 主掛載點(通信)在172.24.8.41節點,其餘兩個節點備選;
  • 三副本的情況下,所有節點都會創建brick。

  1 [root@k8smaster01 ~]# kubectl get pod -n heketi
  2 [root@k8smaster01 ~]# kubectl exec -ti glusterfs-b854k -n heketi -- lsblk	#glusterfs節點查看
  3 [root@k8smaster01 ~]# kubectl exec -ti glusterfs-b854k -n heketi -- df -hT	#glusterfs節點查看
  4 [root@k8smaster01 ~]# kubectl exec -ti glusterfs-b854k -n heketi -- gluster volume list
  5 [root@k8smaster01 ~]# kubectl exec -ti glusterfs-b854k -n heketi -- gluster volume info vol_29ba6f9665522ad5893412e61799a433				#glusterfs節點查看




6.5 Pod掛載測試

  1 [root@xxx ~]# yum -y install centos-release-gluster
  2 [root@xxx ~]# yum -y install glusterfs-fuse					#安裝glusterfs-fuse



提示:本環境master節點也允許分發pod,因此所有master也必須安裝glusterfs-fuse以便於正常掛載,同時版本需要和glusterfs節點一致。

  1 [root@k8smaster01 heketi]# vi gluster-heketi-pod.yaml
  2 kind: Pod
  3 apiVersion: v1
  4 metadata:
  5   name: gluster-heketi-pod
  6 spec:
  7   containers:
  8   - name: gluster-heketi-container
  9     image: busybox
 10     command:
 11     - sleep
 12     - "3600"
 13     volumeMounts:
 14     - name: gluster-heketi-volume			#必須和volumes中name一致
 15       mountPath: "/pv-data"
 16       readOnly: false
 17   volumes:
 18   - name: gluster-heketi-volume
 19     persistentVolumeClaim:
 20       claimName: gluster-heketi-pvc	  	 	#必須和5.3創建的PVC中的name一致
 21 [root@k8smaster01 heketi]# kubectl create -f gluster-heketi-pod.yaml -n heketi	#創建Pod


6.6 確認驗證

  1 [root@k8smaster01 ~]# kubectl get pod -n heketi | grep gluster-heketi
  2 gluster-heketi-pod        1/1     Running   0          4m58s
  3 [root@k8smaster01 ~]# kubectl exec -it gluster-heketi-pod /bin/sh -n heketi 	#進入Pod寫入測試文件
  4 / # cd /pv-data/
  5 /pv-data # echo "This is a file!" >> a.txt
  6 /pv-data # echo "This is b file!" >> b.txt
  7 /pv-data # ls
  8 a.txt  b.txt
  9 [root@k8smaster01 ~]# kubectl exec -it gluster-heketi-pod -n heketi -- df -h	#查看所掛載的glusterfs



  1 [root@k8smaster01 ~]# kubectl get pods -n heketi -o wide		#查看對應的glusterfs node



  1 [root@k8smaster01 ~]# kubectl exec -ti glusterfs-b854k -n heketi -- cat /var/lib/heketi/mounts/vg_2c7a02d1b1b7c1f165283b6691062102/brick_16e37a18a5e5fd40e14338ba78d99565/brick/a.txt
  2 This is a file!



提示:通過Pod寫入相應的測試文件,然後通過glusterfs node節點查看是否存在。

6.7 刪除資源

  1 [root@k8smaster01 ~]# cd heketi/
  2 [root@k8smaster01 heketi]# kubectl delete -f gluster-heketi-pod.yaml -n heketi
  3 [root@k8smaster01 heketi]# kubectl delete -f gluster-heketi-pvc.yaml
  4 [root@k8smaster01 heketi]# kubectl get pvc -n heketi
  5 [root@k8smaster01 heketi]# kubectl get pv -n heketi
  6 [root@k8smaster01 heketi]# kubectl exec -ti glusterfs-b854k -n heketi gluster volume list | grep gluster




參考:https://www.linuxba.com/archives/8152

https://www.cnblogs.com/blackmood/p/11389811.html本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

大巨蛋連通道無影響古蹟疑慮 北市文資審議通過

摘錄自2019年12月30日中央社報導

台北市文化局30日召開第121次文資審議會,其中忠孝東路四段地下通廊連通口新建工程,為市府為串聯大巨蛋與國父紀念館及疏散人潮,預定將通道出入口設於國父紀念館臨近忠孝東路的停車場處,因國父紀念館已在去年列為市定古蹟而受關注。

大巨蛋連通道為報告案第9案,經文資委員同意後備查。文化局副局長田瑋表示,經文資委員李乾朗、劉淑音、張崑振、米復國、蔡元良現勘後,認定無上述疑慮,所以不列審議案而採報告案方式。田瑋指出,連通道離古蹟本身還有約18公尺,開工時需做好監測保護計畫,例如開挖時古蹟是否傾斜或有裂縫、連續壁有無崩塌等。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※專業機台儀器租賃服務及相關銷售資訊

※如何利用一般常見的「L型資料夾」達到廣告宣傳效果?

※哪裡買的到省力省空間,方便攜帶的購物推車?

飲水機皆有含淨水功能嗎?

※無毒橡膠墊片哪裡買的到?

※錢要花在刀口上,選購隔熱紙前必須知道的九件事 !

澳洲熱浪恐惡化野火危機 數千觀光客準備撤離

摘錄自2020年1月2日中央社雪梨報導

澳洲4日恐遭一波熱浪侵襲,預期會引發致命火災,數千名觀光客必須在不到48小時內撤離已被野火肆虐的沿海社區。

法新社報導,在2019年到2020年的跨年夜,災難性野火把澳洲大陸南岸燒出遍地火場,沿著海岸形成一條火帶,造成至少8人死亡,海邊小鎮被火焰包圍,度假遊客陷入困境。

澳洲新南威爾斯省(NSW)鄉村消防局公告「遊客禁停區」,從度假勝地巴特曼灣(Batemans Bay)沿著向來風景優美的東南海岸延伸約200公里,到相鄰的維多利亞省(Victoria),當局也呼籲這裡的人遠離火災威脅的地區。

當局告誡遊客在4日前離開,天氣預報預測這天會有狂風,氣溫將飆升到攝氏40度以上。

新南威爾斯省運輸部長康史坦士(Andrew Constance)接受澳洲廣播公司(ABC)訪問時說,這可能是這個地區「歷來最大規模的人員撤離」,數千人準備疏散,以避開4日可能的新一波惡火。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

廢氣洗滌塔,叫得動, 找得到的專業廠商‎

※選擇示波器的10 項考量因素

無塵擦拭紙各大品牌廠商販售比價網!

飲水機品牌迷思?? 有牌代表最好,錯! 必須先了解用途才能買對開水機!

※什麼規格的隔熱紙能有效提升冷房效果?

※快速搞懂「塑膠射出原理」

水母大爆發!高雄水母湖、秘境魚塭「密密麻麻」超壯觀

摘錄自2020年1月2日自由時報高雄報導

高雄市林園區水母大爆發,濕地公園水母湖已經上看2、3萬隻,無獨有偶,汕尾一處廢棄魚塭也出現上萬隻,林園區紅樹林學會總幹事蘇文華說,兩處水母都「密密麻麻」,有史以來最多,而且高峰期還沒到,預估數量還會持續攀升。

水母大爆發原因研判都與周遭工程竣工有關。蘇文華指出,水母湖曾因濕地路拓寬工程,水質經常呈現混濁,工程完工後,潟湖水質終年清澈;汕尾廢魚塭則是因排水溝整治工程完工,引入乾淨且營養豐富的養殖廢水,為海洋生物打造了友善棲地,水溝內也可見許多摩利魚、吳郭魚及豆仔魚,還有美麗的羽毛藻。

前中汕里里長李進宗說,完成整治的排水溝曾是寬約2、30米小野溪,小時候都在溪裡游泳戲水,後來遭占用,水道縮小,也成了養殖場排放溝渠,經整治後,養殖廢水從魚塭缺口流入,也帶來倒立水母等生物。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※專業機台儀器租賃服務及相關銷售資訊

※如何利用一般常見的「L型資料夾」達到廣告宣傳效果?

※哪裡買的到省力省空間,方便攜帶的購物推車?

飲水機皆有含淨水功能嗎?

※無毒橡膠墊片哪裡買的到?

※錢要花在刀口上,選購隔熱紙前必須知道的九件事 !

澳洲山火波及新西蘭 冰川變天呈焦糖色 恐加速冰塊融化

摘錄自2020年1月3日香港01報導

澳洲五省受高溫及乾旱天氣影響,自9月起多處發生山火,造成至少18人死亡,另有數人下落不明,逾200間房間被燒毀,其中新南威爾士省受災最嚴重,澳洲當局預期周末災情更加嚴重。

正當澳洲正積極撲救山火之際,從新南威爾士省及維多利亞省吹至的煙霧,於除夕日起飄浮至2,000公里外的新西蘭,其中南島多個著名冰川,如塔斯曼 (Tasman)、法蘭士·約瑟夫(Franz Josef),以及福克(Fox)首先受到影響;而濃煙更慢慢飄散至北島,令當地天色驟眼看「陰森恐怖」。

冰川旅行社Alpine Guides負責人麥克布賴德(Arthur McBride)表示,南島多個冰川周三起天色變得非常差,他坦言在該區舉辦旅行團多時,亦從未見過類似情境,「周三下午尤其差,那股如燒木頭的氣味非常濃烈。」

另外,在新西蘭最高山庫克(Mount Cook)經營滑雪飛機和直升機生意的布爾特(Dan Burt)則發現,濃煙尚未瀰漫當地時,他們早於數周前已發現塔斯曼冰川變色。布爾特續指,雖然觀光直升機目前仍能起飛,但對於旅客而言絕是精彩的體驗。

新西蘭氣象局Weather Watch周四發布衛星圖,顯示煙霧如何從澳洲海岸,再跨越塔斯曼海飄散至新西蘭。

旅遊勝地皇后鎮(Queenstown)多座山峰,即距離冰川更南位置,同樣被濃霧覆蓋。另外,南島小鎮達尼丁(Dunedin)過去數天都突然「變天」,有人一覺醒來赫見天氣變得昏暗,黃昏時份更呈刺眼的金黃色。北島周四亦受濃煙及刺鼻燒焦味影響,有居民形容大海曾現異常的金色光芒;天空多雲;當太陽破曉時亦呈橙色。」

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

廢氣洗滌塔,叫得動, 找得到的專業廠商‎

※選擇示波器的10 項考量因素

無塵擦拭紙各大品牌廠商販售比價網!

飲水機品牌迷思?? 有牌代表最好,錯! 必須先了解用途才能買對開水機!

※什麼規格的隔熱紙能有效提升冷房效果?

※快速搞懂「塑膠射出原理」

跨年豪雨破紀錄 印尼雅加達洪災已釀60死

摘錄自2020年1月5日公視報導

印尼首都雅加達淹大水,已經造成60人死亡;目前,超過萬人無法回家。這次淹水是因為12月31晚間一直下大雨造成的,也被認為是有史以來最嚴重的暴雨。

在雅加達市郊、遭洪水重創的勿加西(Bekasi)街道上,這輛廂型車的車體半側傾斜,車頂被路樹卡住,在眾人的協力下,才讓它四輪全部著地,可以想見這場大洪水的衝擊力道有多大。

道路救援聯盟發言人費多指出:「強大洪水將車子沖走,所以很多車都翻覆,現在問題是這些車子擋到路,影響到提供救援的隊伍。」

在爪哇島南部的大雅加達,與鄰近的地區利巴克(Lebak),出現嚴重死傷,洪水沖毀道路、大橋,軍警以直升機空投物資。災民馬彥說:「他們(官員)也許需要時間將救援物資運送過來,我無法評估政府的效率。」

根據印尼氣象、氣候與地球物理局(BMKG)的報告,這次洪災是自1866年有紀錄以來最強大的降雨。官員表示,不排除死亡人數還會增加。這次雅加達洪災起因於跨年元旦起的連日暴雨,造成洪水、山崩,當局撤離數萬人,並且有超過17萬人被安置在救難中心。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※專業機台儀器租賃服務及相關銷售資訊

※如何利用一般常見的「L型資料夾」達到廣告宣傳效果?

※哪裡買的到省力省空間,方便攜帶的購物推車?

飲水機皆有含淨水功能嗎?

※無毒橡膠墊片哪裡買的到?

※錢要花在刀口上,選購隔熱紙前必須知道的九件事 !

武漢通報不明肺炎迄今59例 排除SARS等已知傳染病

摘錄自2020年1月5日中央社、大紀元報導

中央社報導,武漢市衛生健康委員會網站5日發布通報稱,2019年12月31日以來,在全市開展不明原因的病毒性肺炎病例搜索和回顧性調查工作;至5日8時符合不明原因病毒性肺炎患者共59例、除了7例重症患者,其餘病患生命體徵總體穩定,目前所有病患均在武漢市醫療機構接受隔離治療,無死亡病例,且未發現明確的人傳人證據,未發現醫務人員感染。

據了解,病例最早發病時間是2019年12月12日,最晚發病時間為2019年12月29日;已經追蹤到163名密切接觸者並進行醫學觀察,密切接觸者的追蹤工作仍在進行中。這些病例已排除流感、禽流感、腺病毒、傳染性非典型肺炎(SARS)和中東呼吸綜合症(MERS)等呼吸道病原。病原鑑定和病因溯源工作仍在進一步進行中。

另根據大紀元報導,湖北武漢不明肺炎病例在當地暴增並延燒至香港。在過去24小時內,新增8宗曾經到武漢,返港後出現肺炎等症狀的病例。懷疑個案從14例增至16例。最小的病人只有2歲。為因應此疫情,香港衛生署衛生防護中心4日宣布啟動應變計劃,並於即刻起將應變級別由「戒備」升至「嚴重」。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

廢氣洗滌塔,叫得動, 找得到的專業廠商‎

※選擇示波器的10 項考量因素

無塵擦拭紙各大品牌廠商販售比價網!

飲水機品牌迷思?? 有牌代表最好,錯! 必須先了解用途才能買對開水機!

※什麼規格的隔熱紙能有效提升冷房效果?

※快速搞懂「塑膠射出原理」

台中驚見死亡瀕危赤蠵龜 海巡交中華鯨豚協會帶回研究

摘錄自2020年1月6日自由時報報導

台中市大甲松柏漁港守望哨前方約200公尺處海灘,發現一隻死亡多時的瀕危動物赤蠵龜, 海巡署中部分署第三岸巡隊松柏安檢所人員,6日將該龜的遺體交由中華鯨豚協會人員回海洋大學研究,以釐清死亡原因。

海巡署中部分署第三岸巡隊松柏安檢所人員,5日下午3點多,在守望哨前方約200公尺處,發現疑有一隻死亡海龜,海巡人員到場發現海龜已無生命跡象,疑死亡多日,經測量發現該海龜體長約90公分、寬約60公分,隨即聯繫基隆海洋大學派員協助處理。

海洋大學今天委託中華鯨豚協會派員至場確認,認定死亡的海龜為瀕危的赤蠵龜,經現場初步清理後,即運回海洋大學,將研究釐清其死亡原因。

岸巡人員表示,赤蠵龜又名「紅海龜」或「大頭龜」,是蠵龜科蠵龜屬唯一個種,大部份都在鹽水及河口棲息地生活,屬雜食性海龜,有著大而有力的下顎,以蝦、蟹等底棲無脊椎動物為主食,因幼時天敵多、繁殖率很低,被國際自然保護聯盟列為瀕危動物。以往中部只發現過死亡的綠蠵龜,這是近年來首次發現紅蠵龜,該龜疑死亡後才被沖上海岸。

照片提供:海巡署

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※專業機台儀器租賃服務及相關銷售資訊

※如何利用一般常見的「L型資料夾」達到廣告宣傳效果?

※哪裡買的到省力省空間,方便攜帶的購物推車?

飲水機皆有含淨水功能嗎?

※無毒橡膠墊片哪裡買的到?

※錢要花在刀口上,選購隔熱紙前必須知道的九件事 !

台南市政府環保局今天舉辦汰換老舊機車補助方案啟動記者會

台南市政府環保局今天舉辦汰換老舊機車補助方案啟動記者會,由台南市長黃偉哲宣布補助方案;包括汰舊換購七期燃油機車或電動機車、新購電動機車等補助項目,盼提供多元換購選擇,進一步改善空污。

他說,新補助方案分為換購電動機車及換購七期燃油機車兩部分,一般民眾汰舊換購電動機車最高可補助2萬1000元、換購七期燃油機車可補助8000元;新購電動機車最高可補助1萬3000元。中低收入戶汰舊換購電動機車最高可補助2萬7000元、換購七期燃油機車可補助1萬3000元、新購電動機車補助1萬7000元。

黃偉哲指出,此次針對南化、龍崎、左鎮、楠西四個較偏遠的行政區居民加碼,汰舊換購電動機車最高可補助2萬4000元、新購電動機車補助1萬5000元。

本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專業機台儀器租賃服務及相關銷售資訊

※如何利用一般常見的「L型資料夾」達到廣告宣傳效果?

※哪裡買的到省力省空間,方便攜帶的購物推車?

飲水機皆有含淨水功能嗎?

※無毒橡膠墊片哪裡買的到?

※錢要花在刀口上,選購隔熱紙前必須知道的九件事 !