跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Gea-Suan Lin's Wiki
搜尋
搜尋
登入
個人工具
登入
檢視 Kubernetes 的原始碼
頁面
討論
臺灣正體
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
←
Kubernetes
由於以下原因,您無權編輯此頁面:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
'''Kubernetes'''是一套由[[Google]]所發展出來的佈署系統。 == 環境 == 這邊是以Ubuntu 18.04為基礎,在[[AWS]]上使用一台<code>c5.2xlarge</code>與五台<code>r5.large</code>測試。 == 安裝 == 先安裝[[Docker]],然後安裝Kubernetes的套件: <syntaxhighlight lang="bash"> curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -; echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list; sudo apt update; sudo apt install -y kubelet kubeadm kubectl </syntaxhighlight> == 單機設定 == 這邊使用[[Calico]]當作網路層: <syntaxhighlight lang="bash"> sudo kubeadm init --pod-network-cidr=192.168.0.0/16 </syntaxhighlight> 把上面執行結果輸出的命令拿到別台用<code>sudo</code>跑,像是這樣的指令: <syntaxhighlight lang="bash"> sudo kubeadm join a.b.c.d:6443 --token xxxxxx.xxxxxxxxxxxxxxxx --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </syntaxhighlight> 接著回到當初跑<code>kubeadm init</code>的機器上,把設定檔放到自己目錄下: <syntaxhighlight lang="bash"> mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config </syntaxhighlight> 接下來啟用Calico設定: <syntaxhighlight lang="bash"> kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml </syntaxhighlight> 設定好之後不會馬上通,可以用<code>kubectl get nodes --watch</code>可以看到機器會因為retry從<code>NotReady</code>變成<code>Ready</code>。 == HA設定 == 大多數的設定與單機設定相同,請參考前面對單機版本的說明。 HA版本中需要三台主機跑controller,並且需要透過設定檔設定對應的<code>controlPaneEndpoint</code>與<code>podSubnet</code>(因為<code>--config</code>與<code>--pod-network-cidr</code>不能同時使用): <syntaxhighlight lang="yaml"> apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration kubernetesVersion: stable apiServer: certSANs: - "internal-test-gslin-k8s-apiserver-XXXXXXXXXX.us-east-1.elb.amazonaws.com" controlPlaneEndpoint: "internal-test-gslin-k8s-apiserver-XXXXXXXXXX.us-east-1.elb.amazonaws.com:6443" networking: podSubnet: 192.168.0.0/16 </syntaxhighlight> 然後再透過設定檔初始化cluster: <syntaxhighlight lang="bash"> sudo kubeadm init --config=kubeadm-config.yaml </syntaxhighlight> == 使用所有主機 == 一開始的主機(master)不會被分配到需求(因為安全因素),透過以下的指令讓master可以分配到需求: <syntaxhighlight lang="bash"> kubectl taint nodes --all node-role.kubernetes.io/master- </syntaxhighlight> == 標籤 == 可以針對主機進行標籤,供之後的<code>nodeSelector</code>使用: <syntaxhighlight lang="bash"> kubectl label nodes ip-172-31-1-1 instancetype=c5 kubectl label nodes ip-172-31-1-2 ip-172-31-1-3 ip-172-31-1-4 ip-172-31-1-5 ip-172-31-1-6 instancetype=r5 </syntaxhighlight> == 範例 == <syntaxhighlight lang="yaml"> apiVersion: apps/v1 kind: StatefulSet metadata: name: example-r5 spec: replicas: 5 serviceName: example-r5 selector: matchLabels: app: example-r5 template: metadata: labels: app: example-r5 spec: containers: - name: example-r5 image: ubuntu:18.04 command: ["/bin/sh", "-c"] args: - export DEBIAN_FRONTEND=noninteractive; sed -i 's/archive.ubuntu.com/us.archive.ubuntu.com/' /etc/apt/sources.list; apt update; apt install -y iproute2 iputils-ping locales mtr-tiny net-tools tzdata wget; sleep 3153600000 resources: requests: memory: "15Gi" nodeSelector: instancetype: r5 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: example-c5 spec: replicas: 1 serviceName: example-c5 selector: matchLabels: app: example-c5 template: metadata: labels: app: example-c5 spec: containers: - name: example-c5 image: ubuntu:18.04 command: ["/bin/sh", "-c"] args: - export DEBIAN_FRONTEND=noninteractive; sed -i 's/archive.ubuntu.com/us.archive.ubuntu.com/' /etc/apt/sources.list; apt update; apt install -y iproute2 iputils-ping locales mtr-tiny net-tools tzdata wget; sleep 3153600000 resources: requests: cpu: "7000m" nodeSelector: instancetype: c5 </syntaxhighlight> == 相關連結 == * [[Docker]] == 外部連結 == * {{Official|https://kubernetes.io/}} * [https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ Creating a single master cluster with kubeadm] [[Category:軟體]]
此頁面使用了以下模板:
Template:Official
(
檢視原始碼
)
Template:Official website
(
檢視原始碼
)
Module:Arguments
(
檢視原始碼
)
Module:Official website
(
檢視原始碼
)
Module:URL
(
檢視原始碼
)
返回到「
Kubernetes
」。
切換限制內容寬度