1. 程式人生 > >1、kubernetes 1.5.2原理以及叢集HA部署

1、kubernetes 1.5.2原理以及叢集HA部署

Kubernetes是什麼? 

1.是一個全新的基於容器技術的分散式架構,是谷歌的Borg技術的一個開源版本 

Borg是谷歌的一個久負盛名的內部使用的大規模叢集管理系統,基於容器技術,目的是實現資源管理的自動化,垮多個數據中心的資源利用率的最大化 

2.Kubernetes是一個開放的平臺。不侷限於任何一種語言,沒有限定任何程式設計介面。 

3.Kubernetes是一個完備的分散式系統支援平臺。Kubernetes具有完備的叢集管理能力。包括多層次的安全防護機制和准入機制,多租戶應用支撐,透明的服務註冊和服務發現機制,內建只能負載均衡器,強大的故障發現和自我修復能力,服務的滾動升級和線上擴容能力,可擴充套件的資源自動調動機制,以及多粒度的資源配額管理能力 

為什麼要用kubernetes? 

kubernetes作為被業內認可的Docker分散式解決方案,實現微服務架構。微服務架構的核心是一個巨大的單體應用切分為多個很小的互相連線的微服務,一個微服務背後是多個例項的副本在進行支撐,副本數量可以根據系統的負荷進行調整,內嵌的負載均衡器自動實現排程。 

kubernetes具備超強的橫向擴容能力,可以橫向擴充套件node數量,並且可以實現秒級的業務橫向擴充套件,對於電商行業秒殺,拼團等等流量徒增時間和量不確定,以及大促期間需要整體進行擴容有極大的幫助,可將業務統一跑kubernetes上,而後端資料庫都統一依賴雲平臺數據庫服務,物理機或雲主機自建。 

大致瞭解了kubernetes後,我們來簡單的瞭解一下kubernetes的基本概念 

kubernetes的大部分概念,比如:node、pod、RepplicationController、Service等工具都可以看作一種“資源物件”,幾乎所有的資源都可以通過kubernetes提供的kubectl工具進行增、刪、改、查等操作並將其儲存在etcd中持久化儲存。 

Master(主節點) 

叢集管理和控制節點,基本上kubernetes叢集的所有控制命令都發給它,它來負責具體的執行過程 

高可用叢集需要配置三臺Master 

Master節點執行著以下程序: 

  ● kubernetes api server提供了http rest介面的關鍵服務程序,是kubernetes裡所有資源增、刪、改、查等操作的唯一入口,也是叢集控制的程序入口; 

  ● kubernetes controller manager是kubernetes裡所有資源物件的自動化控制中心; 

  ● kubernetes scheduler負責資源排程Pod排程的程序。 

在每個Master節點上還需啟動一個etcd服務,用來儲存所有資源物件的資料,在etcd中儲存的時候以minion的方式儲存 

Node(節點) 

在kubernetes叢集中,除了master節點,其他節點都被稱為node節點,在早期版本被稱為minion 

node是kubernetes叢集的工作負載節點,node節點可為物理機,也可為虛擬機器,每個node都會被master分配一些工作負載(docker容器),其上的工作負載會被master主動轉移到其他節點上去。 

Node節點上執行著的程序 

  ● kubelet負責Pod對應的容器的建立,啟停等任務,同時與matser節點密切協作,實現叢集管理基本功能; 

  ● kube-proxy實現kubernetes service的通訊與負載均衡機制; 

  ● docker engine docker引擎,負責本機的容器建立和管理。 

node節點會動態的新增到kubernetes叢集,由kubelet負責向master進行註冊; 

註冊成功後kubelet會向master彙報自身情況,包括作業系統,docker版本,機器cpu和記憶體使用 

master會根據Node資源使用進行排程 

如果node長時間不上報,master會判斷node失聯,狀態會變為Not ready,master會觸發工作負載轉移的流程。 

Pod 

pod是kubernetes最重要也是最基本的概念,包含一個活或多個緊密相關的容器和卷,每個pod都有一個特殊被稱為“根容器”的Pause容器, 

Pause容器對應的映象屬於kubernetes平臺的一部分 

kubernetes為什麼會有pod的概念? 

1.一組容器作為一個單元,我們不好對整體進行判斷和有效的操作,如果一個容器宕機,是否看做整體宕機,而pod的狀態代表整個容器組的狀態; 

2.Pod的多個容器使用pause容器的ip,共享掛載在pause容器的valume,簡化了關聯容器之間的通訊,並很好解決的檔案共享問題。 

Service(服務) 

Services也是Kubernetes的基本操作單元,是真實應用服務的抽象,每一個服務後面都有很多對應的容器來支援。 

一個Service可以看作一組提供相同服務的Pod的對外訪問介面。 

Service作用於哪些Pod是通過Label Selector來定義的。 

Replication Controller(RC)(pod副本控制器) 

Replication Controller確保任何時候Kubernetes叢集中有指定數量的pod副本(replicas)在執行, 如果少於指定數量的pod副本(replicas),Replication Controller會啟動新的Container,反之會殺死多餘的以保證數量不變。Replication Controller使用預先定義的pod模板建立pods,一旦建立成功,pod 模板和建立的pods沒有任何關聯,可以修改pod 模板而不會對已建立pods有任何影響,也可以直接更新通過Replication Controller建立的pods 

Volume(儲存卷) 

Volume是Pod中能夠被多個容器訪問的共享目錄,這個概念在Kubernetes和Docker中是類似的,Kubernetes的Volume被定義在Pod上,然後被Pod中的容器掛載,Volume的生命週期與Pod相同,Kubernetes支援多種型別的Volume,例如GlusterFS,Ceph等先進的分散式檔案系統。 

Label(標籤) 

Lable是一個key-value的鍵值對,需要由使用者定義,附加到資源上,例如node,pod,service,rc等,每個資源可以有任意數量的label,同一個label也可以附加到任意的資源物件上,可以在資源建立的時候建立,也可以在資源建立的時候定義,也可以在建立完成後動態新增和刪除。對資源建立一個或多個Label可以實現多維度的資源分組管理功能,這樣可以更方便的進行資源分配,排程,配置和部署,然後通過Label Seletor查詢或者篩選具有某些label的資源。 

Namespace(名稱空間) 

Namespace是kubernetes用於實現多租戶的資源隔離,將叢集內部的容器物件分配到不同的Namespace中,形成邏輯上不同專案的分組,便於共享使用整個叢集資源和分別管理。 

瞭解了基本的概念後,我們下面就要開始上手搭建kubernetes的叢集了 

搭建kubernetes的叢集方法有多種,可以使用kubeadm工具進行安裝,可是VV使用之後,感覺並不是很爽,所以還是手搭叢集吧 

那麼今天為大家帶來kubernetes的1.5.2版本的叢集搭建 :

kubernetes 1.5.2叢集安裝 

一、環境準備

五臺centos7系統 

IP地址

主機名

角色

軟體包

192.168.10.101

K8s.node1.com

Master

etcd、docker、kubernetes-master、flanneld

192.168.10.102

K8s.node2.com

Master

etcd、docker、kubernetes-master、flanneld

192.168.10.103

K8s.node3.com

Master

etcd、docker、kubernetes-master、flanneld

192.168.10.104

K8s.node4.com

Node

Docker、kubernetes-node、flanneld

192.168.10.105

K8s.node5.com

Node

Docker、kubernetes-node、flanneld

1.1、關閉防火牆\關閉SeLinux:

systemctl stop firewalld.service && systemctl disable firewalld.service

sed -i "s/SELINUX=enforcing/SELINUX=disabled/"   /etc/selinux/config

yum -y install wget net-tools ntp ntpdate lrzsz

systemctl restart ntpdate.service ntpd.service && systemctl enable ntpd.service ntpdate.service

1.2、配置主機對映/etc/hosts (三臺主機) 

echo 192.168.10.101 k8s.node1.com  >> /etc/hosts

echo 192.168.10.102 k8s.node2.com  >> /etc/hosts

echo 192.168.10.103 k8s.node3.com  >> /etc/hosts

echo 192.168.10.104 k8s.node4.com  >> /etc/hosts

echo 192.168.10.105 k8s.node5.com  >> /etc/hosts

echo 192.168.10.101  etcd  >> /etc/hosts

echo 192.168.10.102  etcd  >> /etc/hosts

echo 192.168.10.103  etcd  >> /etc/hosts

[[email protected] ~]# hostnamectl --static set-hostname  k8s.node1.com  #node1操作

[[email protected] ~]# hostnamectl --static set-hostname  k8s.node2.com  #node2操作

[[email protected] ~]# hostnamectl --static set-hostname  k8s.node3.com  #node3 操作

[[email protected] ~]# hostnamectl --static set-hostname  k8s.node4.com  #node4 操作

[[email protected] ~]# hostnamectl --static set-hostname  k8s.node5.com  #node5 操作

二、安裝配置etcd叢集三個master節點同時操作):

[[email protected] ~]#  yum install -y etcd //node1、node2、node3同時操作

2.1、配置etcd 

yum安裝的etcd預設配置檔案在/etc/etcd/etcd.conf,以下將三個節點上的配置貼出來,請注意不同點。

2379是預設的使用埠,為了防止端口占用問題的出現,增加4001埠備用。下面我將etcd.conf檔案都備份到其他目錄,只留下面這些內容:

node1的配置檔案:

[[email protected] ~]# cat  /etc/etcd/etcd.conf

# [member]

ETCD_NAME="etcd1" 

ETCD_DATA_DIR="/var/lib/etcd/default.etcd" 

ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" #叢集內部通訊使用的URL

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" #供外部客戶端使用的url

#[cluster]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://k8s.node1.com:2380" #廣播給叢集內其他成員訪問的URL

ETCD_INITIAL_CLUSTER="etcd1=http://k8s.node1.com:2380,etcd2=http://k8s.node2.com:2380,etcd3=http://k8s.node3.com:2380" #初始叢集成員列表

ETCD_INITIAL_CLUSTER_STATE="new" #初始叢集狀態,new為新建叢集

ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"  #叢集的名稱

ETCD_ADVERTISE_CLIENT_URLS="http://k8s.node1.com:2379,http://k8s.node1.com:4001" #廣播給外部客戶端使用的url

Node2的配置檔案:

[[email protected] ~]# cat /etc/etcd/etcd.conf

# [member]

ETCD_NAME="etcd2"

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"

#[cluster]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://k8s.node2.com:2380"

ETCD_INITIAL_CLUSTER="etcd1=http://k8s.node1.com:2380,etcd2=http://k8s.node2.com:2380,etcd3=http://k8s.node3.com:2380"

ETCD_INITIAL_CLUSTER_STATE="new"

ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"

ETCD_ADVERTISE_CLIENT_URLS="http://k8s.node2.com:2379,http://k8s.node2.com:4001"

node3的配置檔案:

[[email protected] ~]# cat /etc/etcd/etcd.conf

# [member]

ETCD_NAME="etcd3"

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"

#[cluster]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://k8s.node3.com:2380"

ETCD_INITIAL_CLUSTER="etcd1=http://k8s.node1.com:2380,etcd2=http://k8s.node2.com:2380,etcd3=http://k8s.node3.com:2380"

ETCD_INITIAL_CLUSTER_STATE="new"

ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"

ETCD_ADVERTISE_CLIENT_URLS="http://k8s.node3.com:2379,http://k8s.node3.com:4001"

啟動node1、node2、node3伺服器上的etcd服務。

systemctl restart etcd

啟動完成後,在任意節點執行etcdctl cluster-health命令來檢視執行狀態。

使用etcdctl member list 來檢視叢集中的成員列表。

Ok 到這裡master節點的etcd叢集就搭建完成!

三. 部署 master三個master節點同時操作

1. 安裝 kubernetes docker ,設定開機自啟動並開啟服務

[[email protected] ~]#   yum -y install kubernetes docker

[[email protected] ~]#  systemctl start docker.service //我這裡的宿主機磁碟空間不夠導致docker服務起不來,清理足夠的磁碟空間就可以了。

  1. 在 master 的虛機上,需要執行三個元件:Kubernets API ServerKubernets Controller ManagerKubernets Scheduler
    首先修改 /etc/kubernetes/apiserver 檔案:

node1、node2、node3的配置一樣:

[[email protected] ~]# grep -v "^#" /etc/kubernetes/apiserver | grep -v "^$"

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

KUBE_API_PORT="--port=8080"

KUBE_ETCD_SERVERS="--etcd-servers=http://etcd:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

KUBE_API_ARGS=""

3、接著修改  /etc/kubernetes/config 檔案:(最後一句 k8s.nodex.com:8080 ,對應k8s.node1/2/3機器就好)

node1、node2、node3除了KUBE_MASTER的(k8s.nodeX.com這是對應本機域名或者ip),其它配置一樣:

[[email protected] ~]# grep -v "^#" /etc/kubernetes/config | grep -v "^$"

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http:///k8s.node1.com:8080" //改成k8s.node1.com、k8s.node2.com、k8s.node3.com

4、修改完成後,啟動服務並設定開機自啟動即可:

[[email protected] ~]# systemctl start kube-apiserver kube-controller-manager kube-scheduler

四、部署 node

1. 安裝 docker ,設定開機自啟動並開啟服務

[[email protected] ~]# yum install docker -y

[[email protected] ~]# systemctl start docker && systemctl enable docker

2. 安裝 kubernetes-node 

[[email protected] ~]# yum install kubernetes-node -y

在 node 的虛機上,需要執行三個元件:KubeletKubernets Proxy
首先修改 /etc/kubernetes/config 檔案:(注意:這裡配置的是etcd的地址,也就是master1/2/3的地址其中之一)

Node4的配置:

[[email protected] ~]#  grep -v "^#" /etc/kubernetes/config | grep -v "^$"

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://etcd:8080"

Node5的配置:

[[email protected] ~]#  grep -v "^#" /etc/kubernetes/config | grep -v "^$"

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://etcd:8080"

3.接著修改 /etc/kubernetes/kubelet 檔案:(注:--hostname-override= 對應的node機器)

Node4的配置:

[[email protected] ~]#  grep -v "^#" /etc/kubernetes/kubelet | grep -v "^$"

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_HOSTNAME="--hostname-override=k8s.node4.com"

KUBELET_API_SERVER="--api-servers=http://etcd:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

Node5的配置:

[[email protected] ~]#  grep -v "^#" /etc/kubernetes/kubelet | grep -v "^$"

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_HOSTNAME="--hostname-override=k8s.node5.com"

KUBELET_API_SERVER="--api-servers=http://etcd:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

4.修改完成後,啟動服務並設定開機自啟動即可:

[[email protected] ~]# systemctl start kubelet kube-proxy

5. 檢視叢集狀態

在任意一臺master上檢視叢集中節點及節點狀態:

[[email protected] ~]# kubectl get node

至此,已經搭建了一個kubernetes叢集了,但目前該叢集還不能很好的工作,因為需要對叢集中pod的網路進行統一管理。

五. 建立覆蓋網路 flannel

1. 在master、node上均執行如下命令,安裝 flannel

[[email protected] ~]# yum install flannel -y

2. 在master、node上均編輯 /etc/sysconfig/flanneld 檔案

[[email protected] ~]# grep -v "^#" /etc/sysconfig/flanneld | grep -v "^$"

FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"

FLANNEL_ETCD_PREFIX="/atomic.io/network"

3. 配置etcd中關於flannel的key

flannel使用etcd進行配置,來保證多個flannel例項之間的配置一致性,所以需要在etcd上進行如下配置(我是在node1上執行的):

[[email protected] ~]# etcdctl mk /atomic.io/network/config '{ "Network": "10.0.0.0/16" }' 

(‘/atomic.io/network/config’這個key與上文/etc/sysconfig/flannel中的配置項FLANNEL_ETCD_PREFIX是相對應的,錯誤的話啟動就會出錯)

4. 啟動修改後的 flannel ,並依次重啟docker、kubernete

在 master 三臺機器上執行:

[[email protected] ~]# systemctl start flanneld

[[email protected] ~]#  systemctl restart kube-apiserver kube-controller-manager kube-scheduler flanneld

[[email protected] ~]#  systemctl status kube-apiserver kube-controller-manager kube-scheduler flanneld

在 node 所有機器上執行(node4、node5):

[[email protected] ~]# systemctl start flanneld

[[email protected] ~]# systemctl restart kubelet kube-proxy

最後驗證:

至此kubernetes高可用就搭建完成!步驟非常詳細,如有不對希望大神們指點一二!!!!

相關推薦

1kubernetes 1.5.2原理以及叢集HA部署

Kubernetes是什麼?  1.是一個全新的基於容器技術的分散式架構,是谷歌的Borg技術的一個開源版本  Borg是谷歌的一個久負盛名的內部使用的大規模叢集管理系統,基於容器技術,目的是實現資源管理的自動化,垮多個數據中心的資源利用率的最大化  2.Kuberne

解決AJAX跨域:1利用JSONP;2JS設置Header

javascrip char 響應 ajax請求 cep foo ace 類型 stat 一、利用JSONP:   首先來看看在頁面中如何使用jQuery的ajax解決跨域問題的簡單版: $(document).ready(function(){ var url=

python—89 自定義的admin後臺管理框架 1啟動文件 2源碼(註冊功能創建單例) 3設計url

ready def str try pytho site 字典 style 啟動文件 admin後臺管理框架 仿照admin組件,開發stark組件 1、啟動文件   執行每一個app下的stark.py文件   重寫一個def ready() 函數  autodis

【轉】MySQL—1資料庫索引的實現原理及查詢優化

MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取資料的資料結構。 使用索引的目的在於提高查詢效率,這篇文章梳理一下索引的實現原理和應用。 不同的儲存引擎索引實現的資料結構不同 MySQL支援諸多儲存引擎,而各種儲存引擎對索引的支援也各不相同,

在window XP IIS5.1手工安裝PHP 5.2.11(詳細步驟)

在Windows XP IIS 中裝一個PHP玩玩,用於本機進行php程式學習、測試。 PHP下載:http://windows.php.net/download/ ,選第一個zip下載。 建議不要使用PHP的Installer 安裝包,安裝過程中總會出現意想不到的問題。如果

vs+openCV 1無法開啟原始檔 2計算機中丟失opencv_world310.dll

問題一:無法開啟原始檔<openCV\openCV2.hpp> a.確定:檔案管理器中已經新增包含目錄 假設安裝目錄為D:\openCV 配置“包含目錄”-'編輯':”D:\openCV\build\include” ”D:\openCV\build\i

kubernetes v1.5.2搭建,部署nginx,tomcat,三臺centos7 叢集,一篇秒懂kubernetes工具

安裝vmware 先安裝一個,centos7 minimal模式,安裝完重啟,輸入root與密碼,進入控制檯 ip addr //可以看ip,minimal是沒有安裝ifconfig等等工具的 配置開機聯網 cd /etc/sysconfig/network-script

決策樹(ID3,C4.5,CART)原理以及實現

決策樹 決策樹是一種基本的分類和迴歸方法.決策樹顧名思義,模型可以表示為樹型結構,可以認為是if-then的集合,也可以認為是定義在特徵空間與類空間上的條件概率分佈. [圖片上傳失敗...(image-2e6565-1543139272117)] 決策樹的中間節點可以看做是對一種特徵的判斷,也是符合上一

LR中exit(-1)return -1/return 0等的區別

實驗環境:LR11: 程式碼: vuser_init vuser_init() { lr_output_message(">>>>>>>>>> init"); //exit(-1); //re

1專案1-輸出點陣圖

1. 任務描述:輸出點陣圖——將自己名字的拼音首字母用*打印出 2. 程式碼實現: /* *Copyright(c)2018,CSDN *All rights reserved. *檔名稱:myf.cpp *作 者:馬婭芳 *完成日期:2018.12.24 *版 本 號:v1.0

【LINUX】RedHat Enterprise 5.2 下載以及序列號

[url]ftp://openware.byr.edu.cn/pub/os-images/Redhat/RHEL5.2/rhel-5.2-server-i386-dvd.iso[/url] RedHat Enterprise Linux 5.2的Installation Number: 550dd56b514

Docker實戰之安裝配置Hadoop-2.5.2完全分散式叢集

環境配置 VM:VMware Workstation OS:Ubuntu 14.04  LTS Hadoop:hadoop-2.5.2 Hadoop叢集規劃 172.17.0.2    hadoop-master 172.17.

Redis-3.2.8的叢集安裝部署

一.下載並安裝基礎元件 yum -y install gcc automake autoconf libtool make jemalloc 二.下載redis並解壓安裝 wget http://download.redis.io/relea

Kubernetes(k8s)有狀態叢集服務部署與管理_Kubernetes中文社群

2016年12月2日-3日,ArchSummit2016全球架構師峰會在北京國際會議中心如期舉行。時速雲架構師張壽紅應邀參加,並在微服務與容器實踐專場做了《Kubernetes有狀態叢集服務部署與管理》的乾貨分享。 ▼Tips: 關注時速雲公眾號(tenxcloud2),回覆 “1206 “即

5.1 vim介紹 5.2 vim顏色顯示和移動光標 5.3 vim一般模式下移動光標 5.4 vim一般模式下復制剪切和粘貼

介紹 vim 顏色顯示 5.1 vim介紹5.2 vim顏色顯示和移動光標5.3 vim一般模式下移動光標5.4 vim一般模式下復制、剪切和粘貼5.1 vim介紹vim 是 vi的一個升級版本vim 是帶有顏色顯示的再試下vim 命令[[email protected]/* */ ~

ArcGIS Enterprise 10.5.1 靜默安裝部署記錄(Centos 7.2 minimal版)- 1安裝前準備

計算機 boot thread connect conf 1.8 div 導入 top 安裝前準備 上傳文件到服務器,x-ftp xshell登陸Centos 檢查機器名 修改機器名為:portal.cloud.local 方法一:零時設置,重啟後失效,

四周第二次課(1月3日) 5.1 vim介紹 5.2 vim顏色顯示和移動光標 5.3 vim一般模式下移動光標 5.4 vim一般模式下復制剪切和粘貼

技術 完成 1.0 正在 tin carp 3.4 style ransac 四周第二次課(1月3日)5.1 vim介紹5.2 vim顏色顯示和移動光標5.3 vim一般模式下移動光標5.4 vim一般模式下復制、剪切和粘貼 [root@localhost ~]# [r

九周第四次課(2月26日) 11.1 LAMP架構介紹 11.2 MySQLMariaDB介紹 11.3/11.4/11.5 MySQL安裝 擴展 mysql5.5源碼編譯安裝

when image safe x86 lease x86_64 roc use my.cnf 11.1 LAMP架構介紹11.2 MySQL、MariaDB介紹11.3/11.4/11.5 MySQL安裝擴展mysql5.5源碼編譯安裝 http://www.amin

1004: 12345...

out des pro != 目的 scrip true int 學生 1004: 1、2、3、4、5... Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 1801 Solved: 503[Submit][Status]