世界熱頭條丨K8s安裝部署怎么操作?K8S集群安裝部署及操作說(shuō)明
K8S集群安裝部署
(資料圖片)
一、系統(tǒng)基本環(huán)境搭建1.關(guān)閉swap2.關(guān)閉SELINUX3.調(diào)整內(nèi)核參數(shù)4.調(diào)整系統(tǒng)時(shí)區(qū)5.關(guān)閉系統(tǒng)不需要的服務(wù) 二、安裝etcd1.創(chuàng)建證書(shū)文件2. 安裝etcd2.1 node1上操作2.2 node2上操作2.3 node3上操作 備注說(shuō)明 三、安裝dockernode1節(jié)點(diǎn)node2節(jié)點(diǎn)node3節(jié)點(diǎn) 四、部署api-server(Master Node)1.創(chuàng)建apiserver自簽證書(shū)2.下載安裝包3.配置api-server配置文件4.創(chuàng)建token文件5.systemd 管理 apiserver6.啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)7.授權(quán) kubelet-bootstrap 用戶允許請(qǐng)求證書(shū) 五、部署kube-controller-manager(Master Node)1. 創(chuàng)建配置文件2. systemd 管理 controller-manager3. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng) 六、部署 kube-scheduler(Master Node)1. 創(chuàng)建配置文件2. systemd 管理 kube-scheduler3. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng) 七、查看集群狀態(tài)八、部署 kubelet(Worker Node)1. 創(chuàng)建kubelet.conf配置文件2.配置kubelet-config.yml參數(shù)文件3.生成bootstrap.kubeconfig 配置文件4. systemd 管理 kubelet5. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)6.批準(zhǔn) kubelet 證書(shū)申請(qǐng)并加入集群 九、部署 kube-proxy1.創(chuàng)建kube-proxy.conf2.配置參數(shù)文件3.生成 kube-proxy.kubeconfig4.生成kubeconfig5. systemd 管理 kube-proxy6. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng) 十、部署 CNI 網(wǎng)絡(luò)(Master Node)1.授權(quán) apiserver 訪問(wèn) kubelet 十一、部署node3節(jié)點(diǎn)1. 拷貝已部署好的 Node 相關(guān)文件到新節(jié)點(diǎn)2. 刪除 kubelet 證書(shū)和 kubeconfig 文件3. 修改主機(jī)名4. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)5. 在 Master 上批準(zhǔn)新 Node kubelet 證書(shū)申請(qǐng) 十二、驗(yàn)證測(cè)試總結(jié)說(shuō)明1.kubectl get node 不是Ready狀態(tài)
一、系統(tǒng)基本環(huán)境搭建
角色I(xiàn)P組件
node1192.168.24.136kube-apiserver, kube-controller-manager, kube-scheduler, etcd
node2192.168.24.137kubelet,kube-proxy,docker etcd
node3192.168.24.138kubelet,kube-proxy,docker etcd
1.關(guān)閉swap
[root@node1 ~]# swapoff -a[root@node1 ~]# vim /etc/fstab
2.關(guān)閉SELINUX
[root@node1 ~]# setenforce 0 && sed -i "s/^SELINUX=. */SELINUX=disabled/" /etc/selinux/config
3.調(diào)整內(nèi)核參數(shù)
[root@node1 ~]# cat > /etc/sysctl.d/k8s.conf <<EOFNET.BRIDGE.BRIDGE-NF-CALL-IPTABLES=1NET.BRIDGE.BRIDGE-NF-CALL-IP6TABLES=1EOF# 生效[root@node1="" ~]#="" sysctl="" --system
4.調(diào)整系統(tǒng)時(shí)區(qū)
#設(shè)置系統(tǒng)時(shí)區(qū)為中國(guó)/上海[root@node1 ~]# timedatectl set-timezone Asia/Shanghai#將當(dāng)前的UTC時(shí)間寫(xiě)入硬件時(shí)鐘[root@node1 ~]# timedatectl set-local-rtc 0#重啟依賴于系統(tǒng)時(shí)間的服務(wù)[root@node1 ~]# systemctl restart rsyslog[root@node1 ~]# systemctl restart crond
5.關(guān)閉系統(tǒng)不需要的服務(wù)
[root@node1 ~]# systemctl stop postfix && systemctl disable postfix
二、安裝etcd
1.創(chuàng)建證書(shū)文件
[root@localhost home]# mkdir /opt/TLS/etcd && cd /opt/TLS/etcd[root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64[root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64[root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd6[root@localhost etcd]# mkdir /usr/local/cfssl/[root@localhost etcd]# mv cfssl_linux-amd64 /usr/local/cfssl/[root@localhost etcd]# mv cfssljson_linux-amd64 /usr/local/cfssl/[root@localhost etcd]# mv cfssl-certinfo_linux-amd6 /usr/local/cfssl/[root@localhost etcd]# vim > ca-config.json<< EOF {"signing": {"default": {"expiry": "87600h"},"profiles": {"www": {"expiry": "87600h","usages": ["signing","key encipherment","server auth","client auth"]}}}}[root@localhost etcd]# vim ca-csr.json{"CN": "etcd CA", "key": {"algo": "rsa", "size": 2048 }, "names": [ {"C": "CN", "L": "Beijing", "ST": "Beijing" } ]}[root@localhost etcd]# vim server-csr.json{"CN": "etcd","hosts": ["192.168.24.136","192.168.24.137","192.168.24.138"],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing"}]}[root@localhost etcd]# /usr/local/cfssl/cfssl_linux-amd64 gencert -initca ca-csr.json | /usr/local/cfssl/cfssljson_linux-amd64 -bare ca -2021/06/30 23:30:35 [INFO] generating a new CA key and certificate from CSR2021/06/30 23:30:35 [INFO] generate received request2021/06/30 23:30:35 [INFO] received CSR2021/06/30 23:30:35 [INFO] generating key: rsa-20482021/06/30 23:30:36 [INFO] encoded CSR2021/06/30 23:30:36 [INFO] signed certificate with serial number 725059738840226310954172302162231768550676521910[root@localhost etcd]# [root@localhost etcd]# /usr/local/cfssl/cfssl_linux-amd64 gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | /usr/local/cfssl/cfssljson_linux-amd64 -bare server2021/06/30 23:39:25 [INFO] generate received request2021/06/30 23:39:25 [INFO] received CSR2021/06/30 23:39:25 [INFO] generating key: rsa-20482021/06/30 23:39:25 [INFO] encoded CSR2021/06/30 23:39:25 [INFO] signed certificate with serial number 4113968810751077352879574991605677378957980238632021/06/30 23:39:25 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable forwebsites. For more information see the Baseline Requirements for the Issuance and Managementof Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);specifically, section 10.2.3 ("Information Requirements").[root@localhost etcd]# [root@localhost etcd]# lltotal 36-rw-r--r-- 1 root root 226 Jun 30 23:26 ca-config.json-rw-r--r-- 1 root root 956 Jun 30 23:30 ca.csr-rw-r--r-- 1 root root 143 Jun 30 23:28 ca-csr.json-rw------- 1 root root 1679 Jun 30 23:30 ca-key.pem-rw-r--r-- 1 root root 1265 Jun 30 23:30 ca.pem-rw-r--r-- 1 root root 1013 Jun 30 23:39 server.csr-rw-r--r-- 1 root root 215 Jun 30 23:35 server-csr.json-rw------- 1 root root 1679 Jun 30 23:39 server-key.pem-rw-r--r-- 1 root root 1338 Jun 30 23:39 server.pem[root@localhost etcd]#
2. 安裝etcd
2.1 node1上操作
[root@node1 opt]# wget https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz[root@node1 opt]# tar -zxvf etcd-v3.4.9-linux-amd64.tar.gz[root@node1 opt]# mkdir -p /opt/etcd/{bin,cfg,ssl}[root@node1 opt]# mv etcd-v3.4.9-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/[root@node1 etcd]# scp -r /opt/TLS/etcd/{ca.pem,server-key.pem,server.pem} /opt/etcd/ssl/[root@node1 opt]# vim /opt/etcd/cfg/etcd.conf#[Member] ETCD_NAME="etcd-1" ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="https://192.168.24.136:2380"ETCD_LISTEN_CLIENT_URLS="https://192.168.24.136:2379"#[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.24.136:2380"ETCD_ADVERTISE_CLIENT_URLS="https://192.168.24.136:2379" ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.24.136:2380,etcd-2=https://192.168.24.137:2380,etcd-3=https://192.168.24.138:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" ETCD_INITIAL_CLUSTER_STATE="new"#[Security]ETCD_CERT_FILE="/opt/etcd/ssl/server.pem"ETCD_KEY_FILE="/opt/etcd/ssl/server-key.pem"ETCD_TRUSTED_CA_FILE="/opt/etcd/ssl/ca.pem"ETCD_CLIENT_CERT_AUTH="true"ETCD_PEER_CERT_FILE="/opt/etcd/ssl/server.pem"ETCD_PEER_KEY_FILE="/opt/etcd/ssl/server-key.pem"ETCD_PEER_TRUSTED_CA_FILE="/opt/etcd/ssl/ca.pem"ETCD_PEER_CLIENT_CERT_AUTH="true"[root@node1 opt]# vim /usr/lib/systemd/system/etcd.service[Unit]Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service]Type=notifyEnvironmentFile=/opt/etcd/cfg/etcd.confExecStart=/opt/etcd/bin/etcdRestart=on-failureLimitNOFILE=65536[Install] WantedBy=multi-user.target[root@node1 etcd]# scp -r /opt/etcd root@node2:/opt/[root@node1 etcd]# scp -r /opt/etcd root@node3:/opt/[root@node1 etcd]# scp -r /usr/lib/systemd/system/etcd.service root@node1:/usr/lib/systemd/system/[root@node1 etcd]# scp -r /usr/lib/systemd/system/etcd.service root@node2:/usr/lib/systemd/system/[root@node1 etcd]# systemctl daemon-reload
2.2 node2上操作
[root@node2 ~]# vim /opt/etcd/cfg/etcd.conf#[Member] ETCD_NAME="etcd-2"ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="https://192.168.24.137:2380"ETCD_LISTEN_CLIENT_URLS="https://192.168.24.137:2379"#[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.24.137:2380"ETCD_ADVERTISE_CLIENT_URLS="https://192.168.24.137:2379"ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.24.136:2380,etcd-2=https://192.168.24.137:2380,etcd-3=https://192.168.24.138:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"ETCD_INITIAL_CLUSTER_STATE="new"#[Security]ETCD_CERT_FILE="/opt/etcd/ssl/server.pem"ETCD_KEY_FILE="/opt/etcd/ssl/server-key.pem"ETCD_TRUSTED_CA_FILE="/opt/etcd/ssl/ca.pem"ETCD_CLIENT_CERT_AUTH="true"ETCD_PEER_CERT_FILE="/opt/etcd/ssl/server.pem"ETCD_PEER_KEY_FILE="/opt/etcd/ssl/server-key.pem"ETCD_PEER_TRUSTED_CA_FILE="/opt/etcd/ssl/ca.pem"ETCD_PEER_CLIENT_CERT_AUTH="true"[root@node2 etcd]# systemctl daemon-reload
2.3 node3上操作
[root@node3 ~]# vim /opt/etcd/cfg/etcd.conf#[Member] ETCD_NAME="etcd-3" ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="https://192.168.24.138:2380"ETCD_LISTEN_CLIENT_URLS="https://192.168.24.138:2379"#[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.24.138:2380"ETCD_ADVERTISE_CLIENT_URLS="https://192.168.24.138:2379" ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.24.136:2380,etcd-2=https://192.168.24.137:2380,etcd-3=https://192.168.24.138:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" ETCD_INITIAL_CLUSTER_STATE="new"#[Security]ETCD_CERT_FILE="/opt/etcd/ssl/server.pem"ETCD_KEY_FILE="/opt/etcd/ssl/server-key.pem"ETCD_TRUSTED_CA_FILE="/opt/etcd/ssl/ca.pem"ETCD_CLIENT_CERT_AUTH="true"ETCD_PEER_CERT_FILE="/opt/etcd/ssl/server.pem"ETCD_PEER_KEY_FILE="/opt/etcd/ssl/server-key.pem"ETCD_PEER_TRUSTED_CA_FILE="/opt/etcd/ssl/ca.pem"ETCD_PEER_CLIENT_CERT_AUTH="true"[root@node3 etcd]# systemctl daemon-reload
2.4 分別啟動(dòng)etcd
[root@node1 etcd]# systemctl start etcd [root@node1 etcd]# systemctl enable etcd# 啟動(dòng)node1的etcd后需要立即啟動(dòng)node2、node3上的etcd,否則node1的etcd訪問(wèn)node2、node3不通,一段時(shí)候會(huì)報(bào)啟動(dòng)失敗
備注說(shuō)明
ETCD3.4版本ETCDCTL_API=3 etcdctl 和 etcd --enable-v2=false 成為了默認(rèn)配置,如要使用v2版本,執(zhí)行etcdctl時(shí)候需要設(shè)置ETCDCTL_API環(huán)境變量,例如:ETCDCTL_API=2 etcdctlETCD3.4版本會(huì)自動(dòng)讀取環(huán)境變量的參數(shù),所以EnvironmentFile文件中有的參數(shù),不需要再次在ExecStart啟動(dòng)參數(shù)中添加,二選一,如同時(shí)配置,會(huì)觸發(fā)以下類(lèi)似報(bào)錯(cuò)“etcd: conflicting environment variable - - “ETCD_NAME” is shadowed by corresponding command-line flag (either unset environment variable or disable flag)”flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API
/opt/etcd/cfg/etcd.conf 配置文件參數(shù)說(shuō)明:
參數(shù)含義
ETCD_NAME節(jié)點(diǎn)名稱,集群中唯一
ETCD_DATA_DIR數(shù)據(jù)目錄
ETCD_LISTEN_PEER_URLS集群通信監(jiān)聽(tīng)地址
ETCD_LISTEN_CLIENT_URLS客戶端訪問(wèn)監(jiān)聽(tīng)地址
ETCD_INITIAL_ADVERTISE_PEER_URLS集群通告地址
ETCD_ADVERTISE_CLIENT_URLS客戶端通告地址
ETCD_INITIAL_CLUSTER集群節(jié)點(diǎn)地址
ETCD_INITIAL_CLUSTER_TOKEN集群 Token
ETCD_INITIAL_CLUSTER_STATE加入集群的當(dāng)前狀態(tài),new 是新集群,existing 表示加入
三、安裝docker
node1節(jié)點(diǎn)
[root@node1 opt]# wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz[root@node1 opt]# mv docker /usr/local/[root@node1 opt]# vim /usr/lib/systemd/system/docker.service[Unit]Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target[Service] Type=notify ExecStart=/usr/bin/dockerdExecReload=/bin/kill -s HUP $MAINPIDLimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s[Install] WantedBy=multi-user.target[root@node1 opt]# systemctl daemon-reload[root@node1 opt]# systemctl start docker[root@node1 opt]# systemctl enable docker[root@node1 opt]# scp -r docker/* root@node2:/usr/bin/[root@node1 opt]# scp -r docker/* root@node3:/usr/bin/[root@node1 opt]# scp -r /usr/lib/systemd/system/docker.service root@node2:/usr/lib/systemd/system/ [root@node1 opt]# scp -r /usr/lib/systemd/system/docker.service root@node3:/usr/lib/systemd/system/
node2節(jié)點(diǎn)
[root@node2 opt]# systemctl daemon-reload && systemctl start docker && systemctl enable docker
node3節(jié)點(diǎn)
[root@node2 opt]# systemctl daemon-reload && systemctl start docker && systemctl enable docker
四、部署api-server(Master Node)
1.創(chuàng)建apiserver自簽證書(shū)
[root@node1 k8s]# vim /opt/TLS/k8s/ca-config.json{"signing": {"default": {"expiry": "87600h"},"profiles": {"kubernetes": {"expiry": "87600h","usages": ["signing","key encipherment","server auth","client auth"]}}}}[root@node1 k8s]# vim /opt/TLS/k8s/ca-csr.json{"CN": "kubernetes","key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "Beijing","ST": "Beijing","O": "k8s","OU": "System"}]}[root@node1 k8s]# vim /opt/TLS/k8s/server-csr.json{"CN": "kubernetes","hosts": ["10.0.0.1","127.0.0.1","kubernetes","kubernetes.default","kubernetes.default.svc","kubernetes.default.svc.cluster","kubernetes.default.svc.cluster.local","192.168.24.136","192.168.24.137","192.168.24.138"],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing","O": "k8s","OU": "System"}]}# 生成證書(shū)文件[root@node1 k8s]# /usr/local/cfssl/cfssl gencert -initca ca-csr.json | /usr/local/cfssl/cfssljson -bare ca -2021/07/03 17:50:47 [INFO] generating a new CA key and certificate from CSR2021/07/03 17:50:47 [INFO] generate received request2021/07/03 17:50:47 [INFO] received CSR2021/07/03 17:50:47 [INFO] generating key: rsa-20482021/07/03 17:50:47 [INFO] encoded CSR2021/07/03 17:50:47 [INFO] signed certificate with serial number 112636923636866601548066763582581017478124700260[root@node1 k8s]# #使用自簽 CA 簽發(fā) kube-apiserver HTTPS 證書(shū)[root@node1 k8s]# /usr/local/cfssl/cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | /usr/local/cfssl/cfssljson -bare server2021/07/03 17:53:04 [INFO] generate received request2021/07/03 17:53:04 [INFO] received CSR2021/07/03 17:53:04 [INFO] generating key: rsa-20482021/07/03 17:53:05 [INFO] encoded CSR2021/07/03 17:53:05 [INFO] signed certificate with serial number 600727103085109645844076084532530568963684939512021/07/03 17:53:05 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable forwebsites. For more information see the Baseline Requirements for the Issuance and Managementof Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);specifically, section 10.2.3 ("Information Requirements").[root@node1 k8s]# ls server*.pemserver-key.pem server.pem[root@node1 k8s]#
2.下載安裝包
[root@node1 opt]# wget https://dl.k8s.io/v1.19.0/kubernetes-server-linux-amd64.tar.gz[root@node1 opt]# tar -zxvf kubernetes-server-linux-amd64.tar.gz[root@node1 opt]# mv kubernetes kubernetes_package[root@node1 opt]# mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}[root@node1 opt]# cp kubernetes_package/kubernetes/server/bin/{kube-apiserver,kube-scheduler,kube-controller-manager,kubectl} /opt/kubernetes/bin/[root@node1 opt]# ll /opt/kubernetes/bin/total 300412-rwxr-xr-x 1 root root 115245056 Jul 3 18:13 kube-apiserver-rwxr-xr-x 1 root root 107249664 Jul 3 18:13 kube-controller-manager-rwxr-xr-x 1 root root 43003904 Jul 3 18:15 kubectl-rwxr-xr-x 1 root root 42123264 Jul 3 18:13 kube-scheduler[root@node1 opt]# ln -s /opt/kubernetes/bin/kubectl /usr/bin/kubectl[root@node1 opt]# [root@node1 opt]# cp /opt/TLS/k8s/{ca-key.pem,ca.pem,server-key.pem,server.pem} /opt/kubernetes/ssl/[root@node1 opt]# ll /opt/kubernetes/ssl/total 16-rw------- 1 root root 1679 Jul 3 18:20 ca-key.pem-rw-r--r-- 1 root root 1359 Jul 3 18:20 ca.pem-rw------- 1 root root 1679 Jul 3 18:20 server-key.pem-rw-r--r-- 1 root root 1627 Jul 3 18:20 server.pem[root@node1 opt]#
3.配置api-server配置文件
[root@node1 opt]# vim /opt/kubernetes/cfg/kube-apiserver.confKUBE_APISERVER_OPTS="--logtostderr=false \--v=2 \--log-dir=/opt/kubernetes/logs \--etcd-servers=https://192.168.24.136:2379,https://192.168.24.137:2379,https://192.168.24.138:2379 \--bind-address=192.168.24.136 \--secure-port=6443 \--advertise-address=192.168.24.136 \--allow-privileged=true \--service-cluster-ip-range=10.0.0.0/24 \--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction \--authorization-mode=RBAC,Node \--enable-bootstrap-token-auth=true \--token-auth-file=/opt/kubernetes/cfg/token.csv \--service-node-port-range=30000-32767 \--kubelet-client-certificate=/opt/kubernetes/ssl/server.pem \--kubelet-client-key=/opt/kubernetes/ssl/server-key.pem \--tls-cert-file=/opt/kubernetes/ssl/server.pem \--tls-private-key-file=/opt/kubernetes/ssl/server-key.pem \--client-ca-file=/opt/kubernetes/ssl/ca.pem \--service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \--etcd-cafile=/opt/etcd/ssl/ca.pem \--etcd-certfile=/opt/etcd/ssl/server.pem \--etcd-keyfile=/opt/etcd/ssl/server-key.pem \--audit-log-maxage=30 \--audit-log-maxbackup=3 \--audit-log-maxsize=100 \--audit-log-path=/opt/kubernetes/logs/k8s-audit.log
參數(shù)參數(shù)解釋
–logtostderr啟用日志
–v日志等級(jí)
–log-dir日志目錄
–etcd-serversetcd 集群地址
–bind-address監(jiān)聽(tīng)地址
–secure-porthttps 安全端口
–advertise-address集群通告地址
–allow-privileged啟用授權(quán)
–service-cluster-ip-rangeService 虛擬 IP 地址段
–enable-admission-plugins準(zhǔn)入控制模塊
–authorization-mode認(rèn)證授權(quán),啟用 RBAC 授權(quán)和節(jié)點(diǎn)自管理
–enable-bootstrap-token-auth啟用 TLS bootstrap 機(jī)制
–token-auth-filebootstrap token 文件
–service-node-port-rangeService nodeport 類(lèi)型默認(rèn)分配端口范圍
–kubelet-client-xxxapiserver 訪問(wèn) kubelet 客戶端證書(shū)
–tls-xxx-fileapiserver https 證書(shū)
–etcd-xxxfile連接 Etcd 集群證書(shū)
–audit-log-xxx審計(jì)日志
啟用 TLS Bootstrapping TLS Bootstrapping機(jī)制 TLS Bootstraping:Master apiserver 啟用 TLS 認(rèn)證后,Node 節(jié)點(diǎn) kubelet 和 kube- proxy 要與 kube-apiserver 進(jìn)行通信,必須使用 CA 簽發(fā)的有效證書(shū)才可以,當(dāng) Node 節(jié)點(diǎn)很多時(shí),這種客戶端證書(shū)頒發(fā)需要大量工作,同樣也會(huì)增加集群擴(kuò)展復(fù)雜度。為了 簡(jiǎn)化流程,Kubernetes 引入了 TLS bootstraping 機(jī)制來(lái)自動(dòng)頒發(fā)客戶端證書(shū),kubelet 會(huì)以一個(gè)低權(quán)限用戶自動(dòng)向 apiserver 申請(qǐng)證書(shū),kubelet 的證書(shū)由 apiserver 動(dòng)態(tài)簽署。 所以強(qiáng)烈建議在 Node 上使用這種方式,目前主要用于 kubelet,kube-proxy 還是由我 們統(tǒng)一頒發(fā)一個(gè)證書(shū)。
4.創(chuàng)建token文件
格式:token,用戶名,UID,用戶組
[root@node1 ~]# head -c 16 /dev/urandom | od -An -t x | tr -d " "ef80e12f86c4e342f449e64e3f94f3a9[root@node1 opt]# vim /opt/kubernetes/cfg/token.csvc47ffb939f5ca36231d9e3121a252940,kubelet-bootstrap,10001,"system:node- bootstrapper"
5.systemd 管理 apiserver
[root@node1 opt]# vim /usr/lib/systemd/system/kube-apiserver.service[Unit]Description=Kubernetes API Server Documentation=https://github.com/kubernetes/kubernetes [Service]EnvironmentFile=/opt/kubernetes/cfg/kube-apiserver.confExecStart=/opt/kubernetes/bin/kube-apiserver $KUBE_APISERVER_OPTS Restart=on-failure[Install]WantedBy=multi-user.target[root@node1 opt]#
6.啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)
[root@node1 opt]# systemctl daemon-reload[root@node1 opt]# systemctl start kube-apiserver[root@node1 opt]# systemctl enable kube-apiserver
7.授權(quán) kubelet-bootstrap 用戶允許請(qǐng)求證書(shū)
[root@node1 opt]# kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
五、部署kube-controller-manager(Master Node)
1. 創(chuàng)建配置文件
[root@node1 opt]# vim /opt/kubernetes/cfg/kube-controller-manager.confKUBE_CONTROLLER_MANAGER_OPTS="--logtostderr=false \--v=2 \--log-dir=/opt/kubernetes/logs \--leader-elect=true \--master=127.0.0.1:8080 \--bind-address=127.0.0.1 \--allocate-node-cidrs=true \--cluster-cidr=10.244.0.0/16 \--service-cluster-ip-range=10.0.0.0/24 \--cluster-signing-cert-file=/opt/kubernetes/ssl/ca.pem \--cluster-signing-key-file=/opt/kubernetes/ssl/ca-key.pem \--root-ca-file=/opt/kubernetes/ssl/ca.pem \--service-account-private-key-file=/opt/kubernetes/ssl/ca-key.pem \--experimental-cluster-signing-duration=87600h0m0s"
2. systemd 管理 controller-manager
[root@node1 opt]# vim /usr/lib/systemd/system/kube-controller-manager.service[Unit]Description=Kubernetes Controller ManagerDocumentation=https://github.com/kubernetes/kubernetes[Service]EnvironmentFile=/opt/kubernetes/cfg/kube-controller-manager.conf ExecStart=/opt/kubernetes/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_OPTSRestart=on-failure[Install]WantedBy=multi-user.target
3. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)
[root@node1 opt]# systemctl daemon-reload [root@node1 opt]# systemctl start kube-controller-manager [root@node1 opt]# systemctl enable kube-controller-manager
六、部署 kube-scheduler(Master Node)
1. 創(chuàng)建配置文件
[root@node1 opt]# vim /opt/kubernetes/cfg/kube-scheduler.conf
2. systemd 管理 kube-scheduler
[root@node1 opt]# vim /usr/lib/systemd/system/kube-scheduler.service[Unit]Description=Kubernetes SchedulerDocumentation=https://github.com/kubernetes/kubernetes[Service]EnvironmentFile=/opt/kubernetes/cfg/kube-scheduler.confExecStart=/opt/kubernetes/bin/kube-scheduler $KUBE_SCHEDULER_OPTSRestart=on-failure[Install]WantedBy=multi-user.target
3. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)
[root@node1 opt]# systemctl daemon-reload[root@node1 opt]# systemctl status kube-scheduler[root@node1 opt]# systemctl enable kube-scheduler
七、查看集群狀態(tài)
[root@node1 opt]# kubectl get csWarning: v1 ComponentStatus is deprecated in v1.19+NAME STATUS MESSAGE ERRORcontroller-manager Healthy ok scheduler Healthy ok etcd-1 Healthy {"health":"true"} etcd-0 Healthy {"health":"true"} etcd-2 Healthy {"health":"true"} [root@node1 opt]#
八、部署 kubelet(Worker Node)
1. 創(chuàng)建kubelet.conf配置文件
[root@node2 ~]# mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}[root@node2 ~]# vim /opt/kubernetes/cfg/kubelet.confKUBELET_OPTS="--logtostderr=false \--v=2 \--log-dir=/opt/kubernetes/logs \--hostname-override=node2 \--network-plugin=cni \--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \--config=/opt/kubernetes/cfg/kubelet-config.yml \--cert-dir=/opt/kubernetes/ssl \--pod-infra-container-image=lizhenliang/pause-amd64:3.0"
2.配置kubelet-config.yml參數(shù)文件
[root@node2 ~]# vim /opt/kubernetes/cfg/kubelet-config.ymlkind: KubeletConfigurationapiVersion: kubelet.config.k8s.io/v1beta1address: 0.0.0.0port: 10250readOnlyPort: 10255cgroupDriver: cgroupfsclusterDNS:- 10.0.0.2clusterDomain: cluster.localfailSwapOn: falseauthentication:anonymous:enabled: false webhook: cacheTTL: 2m0s enabled: true x509: clientCAFile: /opt/kubernetes/ssl/ca.pem authorization: mode: Webhook webhook: cacheAuthorizedTTL: 5m0scacheUnauthorizedTTL: 30s evictionHard: imagefs.available: 15% memory.available: 100Minodefs.available: 10% nodefs.inodesFree: 5%maxOpenFiles: 1000000maxPods: 110
3.生成bootstrap.kubeconfig 配置文件
[root@node1 ~]# scp -r /opt/kubernetes_package/kubernetes/server/bin/{kubectl,kubelet,kube-proxy} root@node2:/opt/kubernetes/bin/[root@node1 ~]# scp -r /opt/kubernetes/ssl/ca.pem root@node2:/opt/kubernetes/ssl/ [root@node2 ]# cd /opt/kubernetes/cfg [root@node2 cfg]# export KUBE_APISERVER="https://192.168.24.136:6443" 145 [root@node2 cfg]# export PORT TOKEN="c47ffb939f5ca36231d9e3121a252940"[root@node2 cfg]# /opt/kubernetes/bin/kubectl config set-cluster kubernetes \--certificate-authority=/opt/kubernetes/ssl/ca.pem \--embed-certs=true \--server=${KUBE_APISERVER} \--kubeconfig=bootstrap.kubeconfig[root@node2 cfg]# /opt/kubernetes/bin/kubectl config set-credentials "kubelet-bootstrap" \--token=${TOKEN} \--kubeconfig=bootstrap.kubeconfig [root@node2 cfg]# [root@node2 cfg]# /opt/kubernetes/bin/kubectl config set-context default \--cluster=kubernetes \--user="kubelet-bootstrap" \--kubeconfig=bootstrap.kubeconfig[root@node2 cfg]# /opt/kubernetes/bin/kubectl config use-context default --kubeconfig=bootstrap.kubeconfig[root@node2 cfg]# cat bootstrap.kubeconfig apiVersion: v1clusters:- cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR2akNDQXFhZ0F3SUJBZ0lVRTdyUWVKS2wrNGdxOXNPMzQvclBKdDRpZ21Rd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFXcHBibWN4RURBT0JnTlZCQWNUQjBKbAphV3BwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEl4TURjd016QTVORFl3TUZvWERUSTJNRGN3TWpBNU5EWXdNRm93WlRFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFXcHBibWN4RURBT0JnTlZCQWNUQjBKbGFXcHBibWN4RERBSwpCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByZFdKbGNtNWxkR1Z6Ck1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcXdQcXFUM0RTZE1odVlGQUExVngKSFpkU1NBQ0pRVkN3Mmdvb2JHM0dTaGh3bmY3dzc2MDF0eE5NbUsraEpGNVRBWUNnS05PU2svQ3lUT0wwY0NuNgprcmQ3TEVwNkVzZzl6cXQzN2VaRzExN0MzRXZhR25lZmY0NHUyM2xJSUJQUEJMam84c2Myd2d4SFI4bGREbWlECng0bWhyY3VoVzBHdjluUllUbDdFR2Z0OHlFRFh4SXdFNDFhejgxR0dHN29jd0tZK3BoaUx4TjVkbWZEWFpCWU8KQmdmdEtBOHBjNU9QVVlrUHhXOUcyQStNdkhnTlhBa0xha2lrc0h1MGkxZUxobWQyRUhDeEttbVJLWW1ZUkYxYwpRcy9yd0ZQS1ZHRUpRUyt1NkVDbHZvTGpqZ1VPcE41Ty9aYWxIdjA0aUdkTGd5a2x3ZjJ3RlRqY1BwalYxSFJXCnBRSURBUUFCbzJZd1pEQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWQKQmdOVkhRNEVGZ1FVdzIzZWN2UzJ6VVNrY0pSOEtPcG83eVRZaytzd0h3WURWUjBqQkJnd0ZvQVV3MjNlY3ZTMgp6VVNrY0pSOEtPcG83eVRZaytzd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFIUzE0ZVB5dGJ2VHZMc0E0Z3d3CmZqR09MeElRNi9iQ2hESml1Q3RxUG5XNld0VC9NdHBqbVFKN0xlMlFFejVMMitLbERsSmdWcE9HWFdqSkY2NHoKZUFDTHhyYlM0TEhhVFZZdnBHM3V0by8rdVNQRkYwTlU3QUdGZnBOVEtMK0I0TTdidUVuYUFBSnpKQnNYSXhqeQowdDdPeEljUWNlN05IRTNTUkhlaHVPbkw1Ymk0K09KbkpwaVYzK1I4ZUsvU3g3ZTRrRXFLdG9mYmY3M0dhbE9vClQzZEh3TzVkeFNkT1B4SzFCbUtHb2pZUEdtUTNrSnM2Nmw0ZmxFZGpKV2prSDd3MWdXcTZHaGx1ZXRFVFlUTzIKQzRlUVpJSTJjZnRRTkh6Q2hJcHM1cXVoNGxackYzaStITHJpbjlxR3Y2N0YwREtwRlAwMXgzVkFTUkwxK2xHcgpobUE9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://192.168.24.136:6443 name: kubernetescontexts:- context: cluster: kubernetes user: kubelet-bootstrap name: defaultcurrent-context: ""kind: Configpreferences: {}users:- name: kubelet-bootstrap user: token: c47ffb939f5ca36231d9e3121a252940[root@node2 cfg]#
4. systemd 管理 kubelet
[root@node2 cfg]# vim /usr/lib/systemd/system/kubelet.service[Unit]Description=Kubernetes KubeletAfter=docker.service[Service]EnvironmentFile=/opt/kubernetes/cfg/kubelet.confExecStart=/opt/kubernetes/bin/kubelet $KUBELET_OPTSRestart=on-failureLimitNOFILE=65536[Install]WantedBy=multi-user.target
5. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)
[root@node2 cfg]# systemctl daemon-reload[root@node2 cfg]# systemctl start kubelet[root@node2 cfg]# systemctl enable kubelet
6.批準(zhǔn) kubelet 證書(shū)申請(qǐng)并加入集群
[root@node1 cfg]# kubectl get csr[root@node1 cfg]# kubectl certificate approve node-csr-i-zpjwJ6gET9K_AN0-M8Wb7XpZxrqyBcNlUKGZLv35s[root@node1 cfg]# kubectl get nodeNAME STATUS ROLES AGE VERSIONnode2 NotReady80s v1.19.0[root@node1 cfg]# 注:由于網(wǎng)絡(luò)插件還沒(méi)有部署,節(jié)點(diǎn)會(huì)沒(méi)有準(zhǔn)備就緒 NotReady
九、部署 kube-proxy
1.創(chuàng)建kube-proxy.conf
[root@node2 cfg]# vim /opt/kubernetes/cfg/kube-proxy.confKUBE_PROXY_OPTS="--logtostderr=false \--v=2 \--log-dir=/opt/kubernetes/logs \--config=/opt/kubernetes/cfg/kube-proxy-config.yml"
2.配置參數(shù)文件
[root@node2 cfg]# vim /opt/kubernetes/cfg/kube-proxy-config.ymlkind: KubeProxyConfigurationapiVersion: kubeproxy.config.k8s.io/v1alpha1bindAddress: 0.0.0.0metricsBindAddress: 0.0.0.0:10249clientConnection: kubeconfig: /opt/kubernetes/cfg/kube-proxy.kubeconfighostnameOverride: node2clusterCIDR: 10.0.0.0/24
3.生成 kube-proxy.kubeconfig
# master節(jié)點(diǎn)上生成[root@node1 k8s]# cd /opt/TLS/k8s[root@node1 k8s]# vim kube-proxy-csr.json {"CN": "system:kube-proxy","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing","O": "k8s","OU": "System"}]}[root@node1 k8s]# /usr/local/cfssl/cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kube-proxy-csr.json | /usr/local/cfssl/cfssljson -bare kube-proxy[root@node1 k8s]# scp -r {kube-proxy-key.pem,kube-proxy.pem} root@node2:/opt/kubernetes/ssl/
4.生成kubeconfig
[root@node2 cfg]# export KUBE_APISERVER="https://192.168.24.136:6443"[root@node2 cfg]# /opt/kubernetes/bin/kubectl config set-cluster kubernetes \--certificate-authority=/opt/kubernetes/ssl/ca.pem \--embed-certs=true \--server=${KUBE_APISERVER} \--kubeconfig=kube-proxy.kubeconfig [root@node2 cfg]# /opt/kubernetes/bin/kubectl config set-credentials kube-proxy \--client-certificate=/opt/kubernetes/ssl/kube-proxy.pem \--client-key=/opt/kubernetes/ssl/kube-proxy-key.pem \--embed-certs=true \--kubeconfig=kube-proxy.kubeconfig [root@node2 cfg]# /opt/kubernetes/bin/kubectl config set-context default \--cluster=kubernetes \--user=kube-proxy \--kubeconfig=kube-proxy.kubeconfig [root@node2 cfg]# /opt/kubernetes/bin/kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
5. systemd 管理 kube-proxy
[root@node2 cfg]# vim /usr/lib/systemd/system/kube-proxy.service[Unit]Description=Kubernetes ProxyAfter=network.target[Service]EnvironmentFile=/opt/kubernetes/cfg/kube-proxy.confExecStart=/opt/kubernetes/bin/kube-proxy $KUBE_PROXY_OPTSRestart=on-failureLimitNOFILE=65536[Install]WantedBy=multi-user.target
6. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)
[root@node2 cfg]# systemctl daemon-reload[root@node2 cfg]# systemctl start kube-proxy[root@node2 cfg]# systemctl enable kube-proxy
十、部署 CNI 網(wǎng)絡(luò)(Master Node)
master下載cni包,解壓后,部署好網(wǎng)絡(luò)插件,/opt/cni需要拷貝到其他節(jié)點(diǎn)上,其他節(jié)點(diǎn)也需要
[root@node1 opt]# wget https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz[root@node1 opt]# tar -zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin/[root@node1 opt]# cd /opt/kubernetes/cfg [root@node1 cfg]# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml#默認(rèn)鏡像地址無(wú)法訪問(wèn),修改為 docker hub 鏡像倉(cāng)庫(kù)。[root@node1 cfg]# sed -i -r "s#quay.io/coreos/flannel:.*-amd64#lizhenliang/flannel:v0.12.0-amd64#g" kube-flannel.yml[root@node1 cfg]# scp -r /opt/cni root@node2:/opt/[root@node1 cfg]# kubectl apply -f kube-flannel.yml[root@node1 cfg]# kubectl get pods -n kube-systemNAME READY STATUS RESTARTS AGEkube-flannel-ds-jcp6n 1/1 Running 0 6m22s[root@node1 cfg]# kubectl get nodeNAME STATUS ROLES AGE VERSIONnode2 Ready91m v1.19.0[root@node1 cfg]#
1.授權(quán) apiserver 訪問(wèn) kubelet
[root@node1 cfg]# vim apiserver-to-kubelet-rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" labels: kubernetes.io/bootstrapping: rbac-defaults name: system:kube-apiserver-to-kubelet rules: - apiGroups: - "" resources: - nodes/proxy - nodes/stats - nodes/log - nodes/spec - nodes/metrics - pods/log verbs: - "*" --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: system:kube-apiserver namespace: "" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:kube-apiserver-to-kubelet subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: kubernetes
十一、部署node3節(jié)點(diǎn)
1. 拷貝已部署好的 Node 相關(guān)文件到新節(jié)點(diǎn)
[root@node2 opt]# scp -r /opt/kubernetes root@node3:/opt/[root@node2 opt]# scp -r /usr/lib/systemd/system/{kubelet,kube-proxy}.service root@node3:/usr/lib/systemd/system/
2. 刪除 kubelet 證書(shū)和 kubeconfig 文件
[root@node3 cfg]# rm -rf /opt/kubernetes/cfg/kubelet.kubeconfig /opt/kubernetes/ssl/kubelet*[root@node3 cfg]#
注:這幾個(gè)文件是證書(shū)申請(qǐng)審批后自動(dòng)生成的,每個(gè) Node 不同,必須刪除重新生成。
3. 修改主機(jī)名
[root@node3 cfg]# vim /opt/kubernetes/cfg/kubelet.conf --hostname-override=node3[root@node3 cfg]# vim /opt/kubernetes/cfg/kube-proxy-config.yml hostnameOverride: node3[root@node3 cfg]#
4. 啟動(dòng)并設(shè)置開(kāi)機(jī)啟動(dòng)
[root@node3 cfg]# systemctl daemon-reload[root@node3 cfg]# systemctl start kubelet[root@node3 cfg]# systemctl enable kubelet[root@node3 cfg]# systemctl start kube-proxy[root@node3 cfg]# systemctl enable kube-proxy
5. 在 Master 上批準(zhǔn)新 Node kubelet 證書(shū)申請(qǐng)
[root@node1 cfg]# kubectl certificate approve node-csr-V5KygJs8u7OWvFB2QI2FyiqdLJNwVpDyHnBhVmrC4oQcertificatesigningrequest.certificates.k8s.io/node-csr-V5KygJs8u7OWvFB2QI2FyiqdLJNwVpDyHnBhVmrC4oQ approved
十二、驗(yàn)證測(cè)試
[root@node1 logs]# kubectl create deployment nginx --image=nginxdeployment.apps/nginx created[root@node1 logs]# kubectl expose deployment nginx --port=80 --type=NodePortservice/nginx exposed
總結(jié)說(shuō)明
1.kubectl get node 不是Ready狀態(tài)
我這里的問(wèn)題是,/opt/cni/ 插件從節(jié)點(diǎn)機(jī)器上沒(méi)有部署
標(biāo)簽:
相關(guān)推薦:
精彩放送:
- []環(huán)球觀天下!悟空保是什么保險(xiǎn)如何退保
- []過(guò)戶車(chē)保險(xiǎn)費(fèi)為什么這么貴,原因有以下三點(diǎn)
- []當(dāng)前熱點(diǎn)-公允價(jià)值計(jì)量的交易性金融資產(chǎn)_公允價(jià)值計(jì)量
- []動(dòng)態(tài):思科瑞2022年凈利9742.6萬(wàn)同比增長(zhǎng)0.38% 總經(jīng)理馬衛(wèi)東薪酬100萬(wàn)
- []民和股份:公司種雞減值確認(rèn)后不轉(zhuǎn)回,待種雞淘汰時(shí)轉(zhuǎn)銷(xiāo)對(duì)應(yīng)的減值金額
- []焦點(diǎn)熱門(mén):GQY視訊:公司將在提升內(nèi)部管理促進(jìn)工作效能提升的同時(shí),更積極主動(dòng)應(yīng)對(duì)市場(chǎng)機(jī)會(huì)
- []快來(lái),在這條“櫻花大道”邂逅春日浪漫!
- []環(huán)球速訊:氣墊鞋跑步好嗎(氣墊鞋跑步好)
- []msci中國(guó)指數(shù)是什么意思
- []消息!公司一上市就發(fā)財(cái)了嗎
- []世界熱點(diǎn)!中國(guó)a股總市值
- []路程除以耗油量等于什么
- []當(dāng)前焦點(diǎn)!重慶證券公司怎么樣啊
- []【時(shí)快訊】究極綠寶石叉字蝠怎么進(jìn)化?雙腿變翅膀,論叉字蝠神奇的演化路線
- []世界熱議:保利發(fā)展前三月銷(xiāo)售1141.3億?月內(nèi)57億新增四宗地塊
- []觀天下!公司名稱翻譯成英文怎么寫(xiě)_公司名稱翻譯成英文
- []6折人才房將成歷史?深圳明確:取消安居房和人才房!
- []觀焦點(diǎn):迎大運(yùn)動(dòng)起來(lái) 全國(guó)勞模與成都職工代表樂(lè)動(dòng)全城
- []當(dāng)前報(bào)道:動(dòng)態(tài)市盈率是什么
- []焦點(diǎn)短訊!gloryhole是什么
- []當(dāng)前視訊!同花順模擬炒股輸光了需要投資者返還資金嗎
- []熱點(diǎn)聚焦:股市開(kāi)盤(pán)是什么意思
- []世界最資訊丨福布斯發(fā)布2023全球億萬(wàn)富豪榜;海底撈高層指考核方式升級(jí);愛(ài)馬仕計(jì)劃加速擴(kuò)張中國(guó)市場(chǎng);淘寶APP首頁(yè)測(cè)試新增99特賣(mài)頻道
- []環(huán)球最資訊丨股市怎么樣才能賺錢(qián)
- []焦點(diǎn)短訊!常青科技:募資加碼研發(fā)創(chuàng)新,推動(dòng)核心技術(shù)自主可控
- []星期六股票代碼是多少
- []當(dāng)前焦點(diǎn)!金價(jià)還會(huì)跌嗎
- []【環(huán)球速看料】電子體溫計(jì)測(cè)量哪個(gè)部位最準(zhǔn)確
- []世界新消息丨中鐵隧道股份有限公司是國(guó)企還是央企
- []科創(chuàng)50有哪些股票
- []鱷魚(yú)有舌頭嗎(鱷魚(yú)的舌頭可以防止水倒灌嗎)
- []當(dāng)前觀察:每日凈值是什么意思
- []當(dāng)前看點(diǎn)!債權(quán)投資減值準(zhǔn)備能夠轉(zhuǎn)回嗎
- []天天滾動(dòng):政府為什么不強(qiáng)制賈躍亭回國(guó)
- []當(dāng)前聚焦:福州期貨開(kāi)戶哪家公司比較好
- []視焦點(diǎn)訊!汗斑怎么治療徹底根除_汗斑的最佳治療方法
- []焦點(diǎn)日?qǐng)?bào):一季度國(guó)家鐵路客貨運(yùn)輸兩旺
- []滾動(dòng):剛買(mǎi)了三者沒(méi)買(mǎi)不計(jì)免賠怎么辦
- []實(shí)時(shí):公積金提前還款
- []醫(yī)保比例單位和個(gè)人怎么計(jì)算
- []當(dāng)前頭條:房屋結(jié)構(gòu)安全鑒定報(bào)告_房屋結(jié)構(gòu)
- []環(huán)球熱門(mén):共創(chuàng)儲(chǔ)能新時(shí)代|比亞迪儲(chǔ)能榮膺第十一屆儲(chǔ)能?chē)?guó)際峰會(huì)暨展覽會(huì)ESIE2023多項(xiàng)大獎(jiǎng)
- []權(quán)威發(fā)布:科華數(shù)能用戶側(cè)儲(chǔ)能系統(tǒng)出貨量TOP1
- []世界熱議:“風(fēng)起水涌,能量聚攏”| 科陸重磅發(fā)布Aqua、Aero、Byzer儲(chǔ)能新品
- []特變電工新能源攜光儲(chǔ)新品亮相儲(chǔ)能?chē)?guó)際峰會(huì)
- []環(huán)球焦點(diǎn)!聚焦ESIE2023 | 興儲(chǔ)世紀(jì)與行業(yè)一起邁步新征程
- []每日熱訊!蜂巢能源疊片短刀L500型325Ah儲(chǔ)能專用電芯首次亮相儲(chǔ)能?chē)?guó)際峰會(huì)
- []教人開(kāi)網(wǎng)店的騙局_網(wǎng)上教開(kāi)網(wǎng)店是真是假
- []【天天聚看點(diǎn)】瑞源電氣與您相約第十一屆儲(chǔ)能?chē)?guó)際峰會(huì),我們?cè)?號(hào)館(S86)等您!
- []全球焦點(diǎn)!1八成干的香腸冷凍能放多久?
- []今日熱議:房子,竟然成了萬(wàn)惡之源
- []天天簡(jiǎn)訊:透露大模型進(jìn)展以及英偉達(dá)合作情況,AI操作系統(tǒng)龍頭亮了!這些高增長(zhǎng)低估值股熱度爆棚
- []快資訊:鑫鉑股份:修訂后的考核指標(biāo)2應(yīng)是增長(zhǎng)至的概念,公司已就上述筆誤進(jìn)行了更正,詳見(jiàn)巨潮資訊網(wǎng)
- []招商銀行信用卡咖啡風(fēng)暴10元來(lái)襲!
- []尉氏附近有好玩的地方嗎 尉氏有什么好玩兒的嗎 尉氏附近有好玩的地方嗎在哪
- []空客在華獲160架新飛機(jī)訂單;新東方將布局文旅產(chǎn)業(yè) | 大公司簡(jiǎn)報(bào)
- []天天新消息丨特銳德:有一定的出口外銷(xiāo),但對(duì)公司充電業(yè)務(wù)總收入的影響不大
- []全民推方塊好玩嗎 全民推方塊玩法簡(jiǎn)介
- []世界信息:qdll基金是什么意思
- []股票分紅分的是不是自己的錢(qián)
- []新股申購(gòu)可以撤單嗎
- []當(dāng)前滾動(dòng):趙薇娛樂(lè)公司叫什么
- []做空為什么跌了還賺錢(qián)
- []【世界快播報(bào)】中國(guó)在臺(tái)海軍演可不是“炸魚(yú)”,而是炸臺(tái)獨(dú)的心和膽,矯正美臺(tái)對(duì)臺(tái)海形勢(shì)的預(yù)期
- []天天時(shí)訊:僅租金收入就高達(dá)百億 新城控股連續(xù)五年經(jīng)營(yíng)性現(xiàn)金流凈流入
- []視訊!企業(yè)為什么選擇在科創(chuàng)板上市
- []【全球新要聞】TE Connectivity @2023年儲(chǔ)能?chē)?guó)際峰會(huì)暨展覽會(huì)
- []長(zhǎng)城是由誰(shuí)建造的
- []【環(huán)球報(bào)資訊】創(chuàng)業(yè)板指數(shù)基金有哪些
- []跨國(guó)公司有哪些
- []今日熱訊:工銀價(jià)值是什么基金
- []保障額度是什么意思,保險(xiǎn)金額
- []環(huán)球關(guān)注:被車(chē)撞了怎么跟保險(xiǎn)公司溝通賠償,有以下四步
- []當(dāng)前資訊!社保買(mǎi)兩年不買(mǎi)可退回錢(qián)嗎,滿足條件可以退
- []環(huán)球短訊!新能源汽車(chē)自燃保險(xiǎn)公司賠付嗎,購(gòu)買(mǎi)了自燃險(xiǎn)會(huì)賠付
- []私企有公積金嗎,有
- []【環(huán)球時(shí)快訊】直擊現(xiàn)場(chǎng)!沃太能源亮相北京ESIE展,"新一代"能源技術(shù)備受矚目!
- []環(huán)球新消息丨a股和美股哪個(gè)適合散戶
- []每日短訊:深化儲(chǔ)能業(yè)務(wù)布局 首航攜光儲(chǔ)系統(tǒng)解決方案亮相ESIE2023
- []【獨(dú)家】杠桿效應(yīng)是什么
- []注冊(cè)制有什么特點(diǎn)
- []風(fēng)投基金是什么意思
- []“數(shù)”說(shuō)數(shù)字政府建設(shè)“山東樣本”
- []今日熱議:ipo啥意思
- []創(chuàng)業(yè)板和科創(chuàng)板的區(qū)別
- []震蕩股票怎么操作
- []環(huán)球播報(bào):龍騰光電榮膺電博會(huì)金獎(jiǎng),卓越技術(shù)引領(lǐng)行業(yè)
- []前沿?zé)狳c(diǎn):股市大跌的原因
- []天天快消息!權(quán)重股是指哪些股票
- []權(quán)重股什么意思
- []觀點(diǎn):交通運(yùn)輸部部署開(kāi)展2023年中國(guó)航海日活動(dòng)
- []世界滾動(dòng):“豫”見(jiàn)恐龍骨架化石數(shù)字作品限量發(fā)行
- []騰訊視頻與抖音達(dá)成合作,推動(dòng)長(zhǎng)短視頻融合發(fā)展
- []每日信息:3600億巨頭出手!聯(lián)手兩大新能源公司,要干這件大事
- []【全球速看料】這群HUSTer,在山溝溝里種出“金坨坨”!
- []焦點(diǎn)短訊!買(mǎi)瓶洗發(fā)水送女票
- []國(guó)潮吸引創(chuàng)業(yè)者
- []每日?qǐng)?bào)道:李國(guó)慶羨慕周鴻祎平和離婚背后,與俞渝離婚大戰(zhàn)雞飛狗跳
- []陽(yáng)光車(chē)險(xiǎn)為啥便宜,陽(yáng)光車(chē)險(xiǎn)的理賠流程有哪些
- []配置占比大幅提升 機(jī)構(gòu)頻頻現(xiàn)身科創(chuàng)板股
- 世界熱頭條丨K8s安裝部署怎么操作?K8S集群安裝部署及操作說(shuō)明
- 全球新資訊:合肥今起恢復(fù)公積金異地貸款
- 【世界播資訊】鄭州公布2023年680個(gè)市重點(diǎn)建設(shè)項(xiàng)目名單 總投資1.08萬(wàn)億元
- 今日熱搜:深圳羅湖區(qū)發(fā)放5000萬(wàn)購(gòu)車(chē)補(bǔ)貼 個(gè)人最高獲10萬(wàn)元補(bǔ)貼
- 環(huán)球快看點(diǎn)丨TD早報(bào) | 錦江與雅高簽署諒解備忘錄;廣州會(huì)展業(yè)回暖激活商旅市場(chǎng)
- 環(huán)球視訊!2021年養(yǎng)老金計(jì)算公式 2021養(yǎng)老金計(jì)算公式是怎樣的
- 焦點(diǎn)速看:雙預(yù)警!通州明后天陣風(fēng)8級(jí)!伴有沙塵!注意防范——
- 社保卡激活了是不是金融功能就開(kāi)通了,不一定
- 解局 | 建發(fā)一周三城拿地記:“保守觀望”和“規(guī)模擴(kuò)張”
- 公積金可以取幾次,有以下四種情況
- B站注冊(cè)資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨(dú)家財(cái)務(wù)顧問(wèn) 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年?duì)I收11.24億元 期內(nèi)研發(fā)費(fèi)用投入增長(zhǎng)19.05%
- 紅棗期貨尾盤(pán)拉升大漲近6% 目前紅棗市場(chǎng)總庫(kù)存約30萬(wàn)噸
- 嘉銀金科發(fā)布2021年Q2財(cái)報(bào) 期內(nèi)凈利潤(rùn)達(dá)1.27億元同比增長(zhǎng)208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實(shí)現(xiàn)營(yíng)收同比增長(zhǎng)17.27億元
- 汽車(chē)之家發(fā)布2021年第二季度業(yè)績(jī) 期內(nèi)新能源汽車(chē)品牌收入增長(zhǎng)238%
- 中信銀行上半年實(shí)現(xiàn)凈利潤(rùn)290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價(jià)格創(chuàng)新高 全天成交額達(dá)1.29億元
- 上半年生物藥大增45% 關(guān)鍵財(cái)務(wù)指標(biāo)好轉(zhuǎn)營(yíng)收賬款持續(xù)下降
- 環(huán)球微資訊!股票行情快報(bào):天元股份(003003)4月7日主力資金凈買(mǎi)入55.04萬(wàn)元
- 中交地產(chǎn)2022年收入385億?較上年增長(zhǎng)164.52%
- 天天快報(bào)!LG化學(xué)金惠子:中國(guó)醫(yī)美市場(chǎng)潛力巨大,高端市場(chǎng)尤需持續(xù)發(fā)力
- 天天報(bào)道:中交地產(chǎn)2022年凈利潤(rùn)0.34億元丨年報(bào)快訊
- 快訊:蘇寧環(huán)球披露前期會(huì)計(jì)差錯(cuò)更正 涉及2021年度末未分配利潤(rùn)數(shù)據(jù)
- 天天觀熱點(diǎn):新能源車(chē)險(xiǎn)保費(fèi)大增背后:賠付率超油車(chē),行業(yè)如何提升利潤(rùn)?
- 天天新消息丨專訪陸家嘴董事長(zhǎng)徐而進(jìn):集團(tuán)優(yōu)質(zhì)資產(chǎn)注入 三年內(nèi)預(yù)計(jì)預(yù)收款項(xiàng)近400億元
- 每日熱訊!3月上海二手房成交套數(shù)達(dá)20個(gè)月新高:掛牌量充足,價(jià)格穩(wěn)定
- 環(huán)球觀察:專訪:對(duì)中國(guó)經(jīng)濟(jì)長(zhǎng)期向好充滿信心——訪美敦力全球高級(jí)副總裁顧宇韶
- 每日關(guān)注!招商蛇口一季度簽約銷(xiāo)售金額722.66億元 同比增長(zhǎng)超五成
- 當(dāng)前快訊:嚴(yán)躍進(jìn):新力退市、藍(lán)光預(yù)警,防范房企債務(wù)危機(jī)演變?yōu)楣墒形C(jī)
- 機(jī)構(gòu)評(píng)3月非農(nóng):美國(guó)就業(yè)增長(zhǎng)雖降溫,但美聯(lián)儲(chǔ)5月加息不可避免?
- 云海金屬:青陽(yáng)項(xiàng)目按計(jì)劃是今年投產(chǎn)
- 世界要聞:湖北能源:公司信息披露嚴(yán)格按照監(jiān)管部門(mén)相關(guān)要求辦理,無(wú)應(yīng)披未披事項(xiàng)
- 全球百事通!運(yùn)動(dòng)品牌“雙雄”安踏、李寧“失速”,成長(zhǎng)性陷入瓶頸,高端化困難重重
- 國(guó)內(nèi)游熱度走高,全國(guó)多地知名景區(qū)官宣免票
- 城投控股一季度主要房地產(chǎn)項(xiàng)目新增簽約金額4570萬(wàn)元
- 金融街預(yù)計(jì)2023年與控股股東關(guān)聯(lián)交易不超3.1億
- 當(dāng)前短訊!鄭州樓市再放大招!公積金最高可貸100萬(wàn)
- 天天百事通!天健集團(tuán)按比例支付深圳坪山土地價(jià)款?代價(jià)4.84億元
- 世界今日?qǐng)?bào)丨魚(yú)躍醫(yī)療:公司會(huì)根據(jù)對(duì)應(yīng)產(chǎn)品所處階段、業(yè)務(wù)推廣的進(jìn)度,合理安排產(chǎn)能配置
- 天天快看點(diǎn)丨融創(chuàng)房地產(chǎn)等被執(zhí)行超12億 融創(chuàng)房地產(chǎn)3天被執(zhí)行69次
- 通裕重工:國(guó)有控股后,公司樹(shù)立了“打造國(guó)際一流的能源裝備制造商及知名的功能材料供應(yīng)商”的戰(zhàn)略目標(biāo)
- 世界視訊!歐普康視:公司不是AI類(lèi)企業(yè),產(chǎn)品中會(huì)根據(jù)需要吸收采用必要的AI技術(shù)
- 世界觀焦點(diǎn):國(guó)任財(cái)險(xiǎn)副總經(jīng)理馬昌明任職資格批復(fù)
- 民生銀行參展“第十一屆國(guó)際儲(chǔ)能峰會(huì)”并舉辦“聚力儲(chǔ)能 和合共生”金融論壇
- 財(cái)信發(fā)展為4家子公司提供181.03萬(wàn)元擔(dān)保
- 全球播報(bào):香江控股2022年?duì)I收60.55億元 銷(xiāo)售金額24.41億元
- 頭條焦點(diǎn):振邦智能:目前微逆產(chǎn)品已完成樣機(jī)的測(cè)試,目前正在進(jìn)行型式測(cè)試、并網(wǎng)測(cè)試等,爭(zhēng)取早日通過(guò)認(rèn)證
- 今日關(guān)注:粵海股份:城啟集團(tuán)等五家企業(yè)破產(chǎn)清算案獲得通過(guò)
- 中國(guó)電影前三月票房119億 《流浪地球2》累計(jì)40.26億
- 當(dāng)前看點(diǎn)!陜天然氣:公司目前正在開(kāi)展天然氣貿(mào)易前期準(zhǔn)備工作,積極對(duì)接相關(guān)方,實(shí)質(zhì)性貿(mào)易業(yè)務(wù)暫未開(kāi)展
- 天天看點(diǎn):香江控股:2022年?duì)I業(yè)收入為60.55億元
- 熱點(diǎn)聚焦:安徽首創(chuàng)“納稅信用綠卡” 將在長(zhǎng)三角地區(qū)推廣應(yīng)用
- 告別日燒3億的困局,三大航今年能否實(shí)現(xiàn)盈利?
- 財(cái)面兒丨合生創(chuàng)展:前3月實(shí)現(xiàn)合同銷(xiāo)售額100.67億元 同比增長(zhǎng)25.5%
- 合肥百貨:2022年歸母凈利潤(rùn)下降7.3%
- 焦點(diǎn)熱門(mén):招商蛇口完成發(fā)行10億短期融資券 利率2.2%
- 新消息丨中環(huán)股份(002129.SZ):2020年度歸母凈利升20.51%至10.89億元 擬10派0.6元
- ST泰禾:太原金尊府項(xiàng)目在屬地政府及相關(guān)機(jī)構(gòu)的大力支持和協(xié)助下,正在積極推進(jìn)復(fù)工前期的各項(xiàng)工作
- 全球新資訊:鄭州:承租公租房、保租房的家庭公積金提取金額最高可為3.6萬(wàn)元
- 環(huán)球最資訊丨兆威機(jī)電:公司積極把握汽車(chē)自主品牌和新能源汽車(chē)的發(fā)展機(jī)遇,充電槍鎖驅(qū)動(dòng)系統(tǒng)項(xiàng)目按計(jì)劃穩(wěn)步推進(jìn)中
- 成渝雙城首屆社會(huì)辦醫(yī)創(chuàng)新發(fā)展大會(huì)在渝舉行
- 環(huán)球新動(dòng)態(tài):直擊現(xiàn)場(chǎng)!馬應(yīng)龍亮相世界大健康博覽會(huì)
- 資訊推薦:新加坡旅游業(yè)等來(lái)了中國(guó)游客
- 微速訊:安徽高速地產(chǎn)9.51億元資產(chǎn)支持ABS已獲反饋
- 新消息丨中交地產(chǎn):成功發(fā)行7億元公司債券
- 全球熱文:中國(guó)鐵建擬掛牌轉(zhuǎn)讓3家項(xiàng)目公司股權(quán) 涉及四川成都、江蘇淮安等地
- 今頭條!浙江中成房地產(chǎn)4.79億元競(jìng)得紹興1宗地塊
- 焦點(diǎn)關(guān)注:國(guó)電南自:市值管理核心是不斷優(yōu)化上市公司的資產(chǎn)質(zhì)量和做優(yōu)經(jīng)營(yíng)業(yè)績(jī)以實(shí)現(xiàn)價(jià)值提升
- 環(huán)球快報(bào):宏盛股份:股市有風(fēng)險(xiǎn),入市需謹(jǐn)慎
- 京東拍賣(mài)春季法拍節(jié)開(kāi)啟 房產(chǎn)5.6折起拍、豪車(chē)7折起拍
- 突發(fā)!千億黑馬房企退市,此前老板“退出群聊”嚇壞債權(quán)人
- 環(huán)球視點(diǎn)!南都物業(yè):公司按要求定期披露股東戶數(shù),敬請(qǐng)留意定期報(bào)告相關(guān)內(nèi)容
- 雁棲湖健康發(fā)展論壇在京召開(kāi)
- 天天新動(dòng)態(tài):黃金比例身材是幾幾分
- 觀熱點(diǎn):基金回報(bào)率一般多少
- 天天日?qǐng)?bào)丨房地產(chǎn)板塊漲幅第一!美女私募回應(yīng):這個(gè)鍋我不背!
- 證券大漲是牛市到了嗎
- 當(dāng)前簡(jiǎn)訊:股息分紅是利好嗎
- 微動(dòng)態(tài)丨上海第一家試行股份制經(jīng)營(yíng)的公司是
- 熱點(diǎn)在線丨紹興發(fā)布總額6000萬(wàn)元政府消費(fèi)券 按“先申領(lǐng)后抽簽”模式進(jìn)行
- 每日快訊!津惠保是什么保險(xiǎn),普惠型補(bǔ)充醫(yī)療險(xiǎn)
- 天天百事通!中南置地:2023年第一季度累計(jì)交付1.5萬(wàn)套房屋
- 世界焦點(diǎn)!電子醫(yī)保卡第一次怎么用,有以下六個(gè)步驟
- 北京洛娃大廈二次拍賣(mài)流拍 當(dāng)前價(jià)7.67億元
- 焦點(diǎn)資訊:房地產(chǎn)板塊走強(qiáng) 天保基建漲停
- 焦點(diǎn)信息:綠城水務(wù)(601368)4月7日主力資金凈買(mǎi)入178.16萬(wàn)元
- 【全球播資訊】農(nóng)村社會(huì)養(yǎng)老保險(xiǎn)怎么買(mǎi)最劃算,有以下兩點(diǎn)
- 4月7日西子潔能漲停分析:光熱發(fā)電,創(chuàng)投,釩電池概念熱股
- 環(huán)球今熱點(diǎn):中國(guó)人壽生存金多久拿一次,三年或是一年領(lǐng)取一次
- 訂單險(xiǎn)買(mǎi)家退貨怎么賠,賠付的是商品的價(jià)格
- 【環(huán)球報(bào)資訊】4月7日麥格米特漲停分析:呼吸機(jī),智能制造,充電樁概念熱股
- 4月7日首藥控股漲停分析:創(chuàng)新藥,醫(yī)藥概念熱股
- 4月7日三維化學(xué)漲停分析:光熱發(fā)電,異丙醇,石油化工概念熱股
- 環(huán)球報(bào)道:回落是上升還是下降
- 券商龍頭股票有哪些
- 未成年可以炒股嗎
- 環(huán)球微速訊:macd頂背離和底背離是什么
- 世界消息!股份制銀行有哪些
- 鑄儲(chǔ)能品質(zhì)標(biāo)桿|晶科能源新一代SunGiga液冷工商業(yè)儲(chǔ)能解決方案重磅來(lái)襲
- 錢(qián)小樂(lè):是“借錢(qián)三巨頭”之一,也是小而美的信貸新星
- 世界實(shí)時(shí):浙江湖州:2023年將再增1.53萬(wàn)套保障性租賃住房
- 【世界速看料】天力鋰能:碳酸鋰價(jià)格持續(xù)下跌,影響到下游采購(gòu)需求,直接影響到訂單下滑,導(dǎo)致開(kāi)工率下降
- 焦點(diǎn)快播:專家稱金價(jià)創(chuàng)新高只是時(shí)間問(wèn)題,短期須警惕3月就業(yè)和通脹報(bào)告
- 世界快看:中國(guó)金茂一季度簽約增幅40% 產(chǎn)品+服務(wù)筑基精益發(fā)展底盤(pán)
- 萬(wàn)達(dá)地產(chǎn)集團(tuán)新增兩則被執(zhí)行人信息,執(zhí)行標(biāo)的近10.87億元
- 京東京造正式布局元宇宙 打造"京造元宇宙"虛擬世界
- 天天日?qǐng)?bào)丨京東京造正式布局元宇宙 打造"京造元宇宙"虛擬世界
- A股電影娛樂(lè)板塊走強(qiáng) 上海電影漲停、華誼兄弟、博納影業(yè)等上揚(yáng)
- 全球看點(diǎn):英鎊見(jiàn)頂了?機(jī)構(gòu)反駁:還有200點(diǎn)上漲空間
- 世界熱文:浙農(nóng)股份:公司在浙江省嘉善縣西塘鎮(zhèn)開(kāi)展現(xiàn)代糧食產(chǎn)業(yè)園建設(shè),打造未來(lái)耘農(nóng)場(chǎng),目前種植有萬(wàn)畝水稻
- 快消息!銀行卡里邊定期的錢(qián)可以轉(zhuǎn)活期嗎
- 世界今日訊!諾基亞市值最高峰多少
- 當(dāng)前動(dòng)態(tài):微眾銀行有年費(fèi)嗎
- 仁恒置地首季度合約預(yù)售金額約81.29億 同比下降49.9%
- 世界新資訊:中國(guó)交建:分拆設(shè)計(jì)業(yè)務(wù)打造行業(yè)龍頭上市公司平臺(tái)
- 每日聚焦:北京海淀區(qū)上地西路39號(hào)部分土地及房產(chǎn)二次掛牌 起拍價(jià)降至6.86億
- 焦點(diǎn)熱議:贛州城投30億元私募債券項(xiàng)目更新為“已反饋”
- 北京:廢止房屋拆遷許可證制度 應(yīng)采取房屋安置等方式予以補(bǔ)償