顯示具有 k8s 標籤的文章。 顯示所有文章
顯示具有 k8s 標籤的文章。 顯示所有文章

2017年3月2日 星期四

CentOS 7 安裝 Kubernetes

公司內部限制聯外網路,安裝k8s的部分用了很慘烈的方式來安裝

1. 自建yum server
2. 自建docker registry
3. 打包所有rpm相依性檔案

事實上,對外網路開放之後,根本就是無腦裝完呀!!

以下是我在GCP的安裝方式 (根本輕鬆啊!!)


  • 在每一台主機上


1. 關閉阿哩不達的東西

    setenforce 0
    systemctl stop firewalld
    systemctl disable firewalld

2. 增加kubernetes yum repo

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

3. 安裝相關套件

    yum install docker kubelet kubeadm kubectl kubernetes-cni

4. 啟動docker service
 
   systemctl enable docker

   systemctl start docker

5. 啟動kubelet

   systemctl enable kubelet

   systemctl start kubelet


  • 在 master node


1. kubeadm init

    跑完後記得記下以下內容
    You can now join any number of machines by running the following on each node:
    kubeadm join --token=da9646.60c02a85541104a0 10.128.0.2

2. 安裝pod overlay network
   
     kubectl apply -f https://git.io/weave-kube


  • 在 work node


1. 執行剛剛記下來指令內容

    kubeadm join --token=da9646.60c02a85541104a0 10.128.0.2


  • 在 maste node


     確認以下資訊

    # kubectl get nodes
       NAME         STATUS           AGE
       k8s-master   Ready,master     17h
       k8s-node      Ready                17h

打完收工

2017年2月22日 星期三

Kubernets限制pods不在master node生成

基於安全性考量情況下,在k8s中master node是不會部署pod在上面

噓噓東的電話公司k8s專案搭建了一套3個master node + 2個worker node的架構

目前k8s官方尚未正式提供多master node架構,所以即使自行設定多master node

k8s還是會將pod部署在第二和第三台master node上

要限制pod不在master node上部署,可以用kubectl taint指令來進行

# kubectl get nodes
NAME       STATUS         AGE
k8s-m01t   Ready,master   1d
k8s-m02t   Ready,master   1d
k8s-m03t   Ready,master   1d
k8s-n01t   Ready          1d
k8s-n02t   Ready          1d

這裡有3個master node,其中k8s-m02t和k8s-m03t都會被部署pod

所以執行下面指令

# kubectl taint node k8s-m02t dedicated=master:NoSchedule
# kubectl taint node k8s-m03t dedicated=master:NoSchedule

驗證一下設定

# kubectl describe nodes | grep Taints

# kubectl describe nodes | grep Taints
Taints:                 dedicated=master:NoSchedule
Taints:                 dedicated=master:NoSchedule
Taints:                 dedicated=master:NoSchedule
Taints:                 <none>
Taints:                 <none>


kubernets service 介紹

kubernets (簡稱k8s)中的容器如果要對外服務,需要透過server元件來進行 service元件有以下幾種類型可供選擇 : clusterip : 預設類型,只在k8s cluster內部IP中提供服務,外部無法訪問 nodeport : 在每個n...