下面的指引將高速你如何通過docker建立乙個單機、單節點的kubernetes集群。
下圖是最終的結果:
你必須擁有一台安裝有docker的機器。
你的核心必須支援 memory and swap accounting 。確認你的linux核心開啟了如下配置:
config_resource_counters=y
config_memcg=y
config_memcg_swap=y
config_memcg_swap_enabled=y
config_memcg_kmem=y
以命令列引數方式,在核心啟動時開啟 memory and swap accounting 選項:
grub_cmdline_linux="cgroup_enable=memory swapaccount=1"
注意:以上只適用於grub2。通過檢視/proc/cmdline可以確認命令列引數是否已經成功
傳給核心:
$cat /proc/cmdline
boot_image=/boot/vmlinuz-3.18.4-aufs root=/dev/sda5 ro cgroup_enable=memory
swapaccount=1
第一步:執行etcd
docker run --net=host -d gcr.io/google_containers/etcd:2.0.12 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data
第二步:啟動master
這一步實際上執行的是 kubelet ,並啟動了乙個包含其他master元件的[pod](…/userguide/pods.md)。
第三步:執行service proxy
docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube proxy --master= --v=2
(os x) (linux)
注意: 再os/x上你需要通過ssh設定埠**:
boot2docker ssh -l8080:localhost:8080
列出集群中的節點:
kubectl get nodes
應該輸出以下內容:
name labels status
127.0.0.1 ready
如果你執行了不同的kubernetes集群,你可能需要指定 -s http://localhost:8080 選項來訪問本地集群。
kubectl -s http://localhost:8080 run nginx --image=nginx --port=80
kubectl expose rc nginx --port=80
執行以下命令來獲取剛才建立的service的ip位址。有兩個ip,第乙個是內部的
(cluster_ip),第二個是外部的負載均衡ip。
kubectl get svc nginx
同樣你也可以通過執行以下命令只獲取第乙個ip(cluster_ip):
kubectl get svc nginx --template=}
通過第乙個ip(cluster_ip)訪問服務:
curl
注意如果再osx上需要再boot2docker虛擬機器上執行curl。
上面的各種容器都是執行在 kubelet 程式的管理下,它會保證容器一直執行,甚至容器意外退出時也不例外。所以,如果想關閉集群,你需要首先關閉 kubelet 容器,再關閉其他。
可以使用 docker kill $(docker ps -aq) 。注意這樣會關閉docker下執行的所有容器,請謹慎使用。
k8s集群部署 docker部署k8s安裝篇
1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...
k8s 執行應用
kubect建立deployment deployment 建立replicaset 根據replicaset 建立pod 命名方式 relicaset 的命名方式 deployment名稱 隨機數 pod命名方式 relicaset 隨機數 1 通過kubetcl 建立 kubectl run n...
k8s本地環境搭建
提前安裝docker,學習使用絕大部分的場景使用的是docker驅動,而且k8s學習與docker相一致。不要使用docker desktop for mac windows 中的 k8s,其安裝配置在國內 因為網路問題 是乙個天坑,浪費時間生命,還會搞的docker下一堆映象和容器,影響docke...