Kubernetes

從 Google Kubernetes Engine 移除節點

學習如何手動移除 GKE 指定節點

ta-ching chen

1 minute read

前言

在 GKE 上運作的 Kubernetes 叢集支援多個 node pool,每個 pool 可以根據需求調配不同的機器規格、自動擴展等設定,但當我們從網頁設定縮小 node pool 時,GKE 會隨機選擇 pool 中的機器來移除。有時我們會希望移除指定的機器,因此下面會介紹該如何手動移除特定節點。

Hands-On

找出想要移除的節點,比方說 gke-dummy-server-default-pool-16ce3e71-9192

$ kubectl get node
NAME                                                 STATUS     AGE       VERSION
gke-dummy-server-default-pool-16ce3e71-9192          Ready          15h       v1.6.7
gke-dummy-server-default-pool-16ce3e71-s8w0          Ready          4d        v1.6.7

透過 kubectl drain 指令,將原本部署在該節點的 Pod 移到其他節點上。

$ kubectl drain <node> --force --ignore-daemonsets

並且執行後可以看到將該節點狀態變成 Ready,SchedulingDisabled

$ kubectl get node
NAME                                                 STATUS                     AGE       VERSION
gke-dummy-server-default-pool-16ce3e71-9192          Ready,SchedulingDisabled   15h       v1.6.7
gke-dummy-server-default-pool-16ce3e71-s8w0          Ready                      4d        v1.6.7

Kubernetes Service 深度剖析 - 存取路徑差異

討論 Kubernetes Service 存取路徑差異、注意要點

ta-ching chen

3 minute read

系列文章

前言

前篇文章介紹 Service 在 Kubernetes 裡的基礎概念及應用,但 Service 透過不同路徑存取 Pod 間的差異在哪裡,以及服務營運上的細節、注意事項 ,接下來在本篇文章中將為各位逐一說明。

Service 存取路徑裡跟外

前篇文章內有提到,有兩種角色會透過 Service 存取其他的 Pod,分別是 Kubernetes 集群外部使用者以及集群內部其他 Pod。儘管兩種路徑的結果都相同,但之間仍存在一個關鍵差異在於: 存取 IP 不同

實際上在 Kubernetes 內共有三種 IP 存在

  • External IP: 裸露的網路位址,供外部使用者連線
  • Cluster IP: 叢集內部的網路位址,在 Cluster 內的 Pod 可以透過此位址存取該服務
  • Pod IP: 每個 Pod 獨有的網路位址,只有叢集內可連線

Kubernetes 兩步安裝一次上手

介紹如何透過 Kubeadm 在短時間內安裝 Kubernetes

ta-ching chen

3 minute read

前言

古早時期安裝完整 Kubernetes 的步驟十分繁複,Kubernetes 1.4 之後推出 kubeadm 讓整個安裝過程能在幾分鐘內完成,以下將介紹使用 kubeadm 安裝 Kubernetes 的過程。

前置步驟

  • Ubuntu 16.04

安裝

  • install.sh
#!/bin/bash
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
# Install docker if you don't have it already.
apt-get install -y docker.io
apt-get install -y kubelet kubeadm kubectl kubernetes-cni

Adopting Container and Kubernetes in Production

介紹 VMFive 導入 Kubernetes 的前與後

ta-ching chen

1 minute read

演講投影片

  • 2017 Kubernetes Conf (inwinSTACK)

提問回答

Kubernetes v.s Docker Swarm

Docker Swarm 係由 Docker 官方推出用來管理多運算節點的容器編配器,優點在於安裝簡單但功能陽春。現有大規模部署案例中,並無任何使用 Docker Swarm 的例子,可作為小型環境部署測試,但不建議用於 production 環境。

Kubernetes 使用案例較多,從 Pokemon Go 到大陸京東皆有大規模部署使用案例,且目前單個叢集可支援多達上萬個容器。另外,整個 production 所需功能完善、社群蓬勃發展,較適合用來部署線上 production 環境。

Fission - Serverless Framework on Kubernetes

介紹 Fission 概念及架構之投影片 for Golang Taiwan

ta-ching chen

1 minute read

Fission 介紹投影片

  • 第一次參與聚會當講者非常緊張(苦笑),若介紹有不清楚或有疑惑歡迎留言或寄信詢問 :)