centos 7 k8s v1.7 v1.6 搭建記

K8s  V1.6   V1.7 部署


一、基礎環境

1、主機名 IP  hosts 配置

主機名 IP 系統

k8s.master 192.168.1.44 CentOS 7 64

k8s.node1 192.168.1.45 CentOS 7 64

k8s.node2 192.168.1.46 CentOS 7 64

K8s.node3 192.168.1.47 CentOS 7 64



二、基礎軟件環境


1、關閉防火牆

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


2、禁用SELinux

setenforce 0

sed -i.bak 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config



三、安裝K8s


1、設置yum 代理 過GFW(根據自己網絡條件判斷是否需要***)


vim /etc/yum.conf添加下面內容

proxy=http://192.168.1.8:2345/pac (這是我局域網的代理地址,根據自己的修改)


2、配置yum源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg

    https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

EOF


3、在所有節點上安裝以下軟件包:

yum install -y docker kubelet kubeadm kubectl kubernetes-cni  默認會安裝v1.7版本


我本次安裝v1.6.2版本 

執行下面命令可以查看所有可用版本

yum list kubeadm  --showduplicates |sort -r

wKiom1lnPLuRO1DZAAEgTBtdQKc784.png-wh_50

 

yum install -y docker kubelet-1.6.2 kubeadm-1.6.2 kubectl-1.6.2 kubernetes-cni


systemctl enable docker && systemctl start docker 

systemctl enable kubelet && systemctl start kubelet

4、內核參數修改

sysctl net.bridge.bridge-nf-call-iptables=1

sysctl net.bridge.bridge-nf-call-ip6tables=1

sysctl -p


5、初始化master 

kubeadm init --kubernetes-version=v1.6.2 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.1.44

因爲在該集羣中將使用flannel搭建pod網絡,因此必須添加–pod-network-cidr參數


        可能是GFW的原因 kubeadm init 一直卡在下載鏡像


解決卡頓問題

千辛萬苦找到的谷歌鏡像免費代理

用法:

docker pull gcr.mritd.me/google_containers/k8s-dns-dnsmasq:1.10.1

下面是1.6.2版本需要使用到的一些鏡像,各個版本有所不同,V1.7 的可以查看安裝後的配置文件

gcr.io/google_containers/kube-proxy-amd64:v1.6.2

gcr.io/google_containers/kube-apiserver-amd64:v1.6.2 

gcr.io/google_containers/kube-controller-manager-amd64:v1.6.2 

gcr.io/google_containers/kube-scheduler-amd64:v1.6.2 

quay.io/coreos/flannel:v0.7.1-amd64 

gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0 

gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1 

gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1 

gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1 

gcr.io/google_containers/etcd-amd64:3.0.17

gcr.io/google_containers/pause-amd64 :3.0 

鏡像pull完成後 執行 kubeadm reset 後重新初始化

初始化完成 記錄重要的token,新機器加入集羣是需要

kubeadm join --token c7c5d9.cf80372282..... 192.168.1.44:6443

溫馨提示!下面是偷懶下載鏡像的腳本

#!/usr/bin/env bash
images=(
heapster-s390x:v1.3.0
heapster-ppc64le:v1.3.0
heapster-arm64:v1.3.0
heapster-arm:v1.3.0
heapster-amd64:v1.3.0
)
for imageName in ${images[@]} ; do
    docker pull gcr.mritd.me/google_containers/$imageName
   docker tag gcr.mritd.me/google_containers/$imageName gcr.io/google_containers/$imageName
    docker rmi gcr.mritd.me/google_containers/$imageName
done

6、根據提示執行下面的命令

sudo cp /etc/kubernetes/admin.conf $HOME/

sudo chown $(id -u):$(id -g) $HOME/admin.conf

export KUBECONFIG=$HOME/admin.conf

至此,基本的安裝就完成了


三、配置和插件安裝


1、安裝Pod Network


kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml

kubectl apply -f  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

使用kubectl get pod --all-namespaces -o wide確保所有的Pod都處於Running狀態

 wKiom1lnPk2Ad6tBAAFfcAEpbj8465.png-wh_50


2、Dashboard 插件安裝

執行下面的命令安裝插件

kubectl create -f dashboard-rbac.yaml

kubectl create -f kubernetes-dashboard.yaml

執行下面命令查看Dashboard端口

kubectl describe --namespace kube-system service kubernetes-dashboard

 wKiom1lnPrnC7oXZAAC5P0KLy2s124.png-wh_50

然後就可以載瀏覽器通過 http://IP:NodePort的方式訪問了

下面爲頁面安裝可視化儀表插件


3、Heapster 監控儀表盤安裝

源碼下載地址

https://github.com/kubernetes/heapster/releases

wget https://github.com/kubernetes/heapster/archive/v1.3.0.tar.gz

安裝插件

tar -zxvf v1.3.0.tar.gz

cd heapster-1.3.0/deploy/kube-config/influxdb

kubectl create -f ./


上面同樣的方式獲取谷歌鏡像,版本和插件得一一對應

gcr.io/google_containers/heapster-s390x:v1.3.0

gcr.io/google_containers/heapster-ppc64le:v1.3.0

gcr.io/google_containers/heapster-arm64:v1.3.0

gcr.io/google_containers/heapster-arm:v1.3.0

gcr.io/google_containers/heapster-amd64:v1.3.0


查看狀態

kubectl get pod --all-namespaces -o wide

 wKioL1lnPwPyLRNdAAGxK89ApGo597.png-wh_50

附件:

1、pull-images.sh(偷懶下載谷歌鏡像)

2、dashboard-rbac.yaml

3、kubernetes-dashboard.yaml


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章