kubeadm安裝部署kubernetes

一、kubernetes的安裝方式

1.kubeadm:kubeadm 可以運行在物理機、虛擬機以及雲主機,並且可以與chef或puppet配合可以完成自動化部署安裝
2.minikube:minikube 由 CoreOS 提供在單機上構件 kubernetes 集羣
3.docker:docker images 由 kubernetes 在發行版本中提供 docker images,並通過 docker images 運行 kubernetes 組件。所需要的鏡像包在kubernetes-server-linux-amd64.tar.gz裏
4.hyperkube:hyperkube images 由 Google 推出將 kubernetes 各組件以容器方式運行。容器可以有(docker/rkt等)。使用 hyperkube images 需要提前配置 kubelet 組件。最終通過kubelet將kubenetes部署各組件。這種安裝方法的好處是:只要系統可運行容器,就可以通過hyperkube images 來運行kubernetes組件

二、使用kubeadm安裝kubernetes

1.各節點信息
主機名 IP 節點
centos1 192.168.1.150 主節點
centos2 192.168.1.151 從節點
centos3 192.168.1.152 從節點

以下操作所有節點都要執行

2.前提

1)主節點給4G內存、雙cpu,設置每個節點兩兩之間無密碼登錄ssh

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
#其餘兩臺也進行同樣操作,實現兩兩無密碼登錄

2)關閉selinux,時間必須同步

sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/sysconfig/selinux

3)關閉firewall或iptables

systemctl stop firewalld 
systemctl disable firewalld

4)配置hosts文件

vim /etc/hosts
192.168.1.150 centos1
192.168.1.151 centos2
192.168.1.152 centos3
scp /etc/hosts [email protected]:/etc/hosts
scp /etc/hosts [email protected]:/etc/hosts
3.安裝依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
4.設置docker鏡像源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5.安裝docker
yum install -y --setopt=obsoletes=0 docker-ce-17.03.0.ce-1.el7.centos   docker-ce-selinux-17.03.0.ce-1.el7.centos
6.設置docker開機啓動
systemctl enable docker && systemctl start docker
7.安裝kubeadm

1)配置國內yum源

vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0

2)重建yum源

yum -y install epel-release
yum clean all
yum makecache

3)安裝

yum -y install kubeadm-1.11.0-0 kubelet-1.11.0-0 kubernetes-cni-0.6.0

4)啓動kubeadm並設置開機啓動

systemctl enable kubelet && systemctl start kubelet
8.編寫下拉鏡像的腳本
vim docker.sh
#docker.sh
#!/bin/bash
images=(kube-proxy-amd64:v1.11.0 kube-scheduler-amd64:v1.11.0 kube-controller-manager-amd64:v1.11.0 kube-apiserver-amd64:v1.11.0 etcd-amd64:3.2.18 coredns:1.1.3 pause-amd64:3.1 kubernetes-dashboard-amd64:v1.8.3 k8s-dns-sidecar-amd64:1.14.9                 k8s-dns-kube-dns-amd64:1.14.9 k8s-dns-dnsmasq-nanny-amd64:1.14.9 )
for imageName in ${images[@]} ; do
docker pull keveon/$imageName
docker tag keveon/$imageName k8s.gcr.io/$imageName
docker rmi keveon/$imageName
done
docker tag da86e6ba6ca1 k8s.gcr.io/pause:3.1
9.執行腳本下拉鏡像
chmod 777 docker.sh
./docker.sh
10.關閉swap分區
swapoff -a  #臨時關閉
vim /etc/fstab #永久關閉,註釋swap那一行
11.配置轉發參數
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
sysctl -p /etc/sysctl.d/k8s.conf

三、正式安裝(以下都在主節點上操作)

1.安裝
kubeadm init --kubernetes-version=v1.11.0 --pod-network-cidr=10.244.0.0/16

完成後顯示如下:
在這裏插入圖片描述

2.執行上圖中的命令
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
3.安裝flanel網絡
kubectl apply -f \
https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
如果顯示這個信息,就執行下面這個命令

在這裏插入圖片描述

export KUBECONFIG=/etc/kubernetes/admin.conf
4.查看節點狀態
kubectl get nodes

在這裏插入圖片描述

四、添加節點(node上操作)

1.執行上面node加入的命令
kubeadm join 192.168.1.150:6443 --token dkr6gl.niujtokn81q83277 --discovery-token-ca-cert-hash sha256:598932123108b51d4f320c75d1321e4d4dcd28d1b4306398b1f85a9b2c0e4a0c
完成顯示如下

在這裏插入圖片描述

2.在master上查看

#全部節點顯示ready,成功
在這裏插入圖片描述

五、安裝web管理界面kubernetes-dashboard

1.下載官方yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml
2.修改文件內容,做端口映射
vim kubernetes-dashboard.yaml

在這裏插入圖片描述

3.創建serviceaccount 用於登陸dashboard
kubectl create serviceaccount dashboard-admin -n kube-system
4.創建clusterrolebinding
kubectl create clusterrolebinding cluster-dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
5.創建容器
sed -i 's#k8s.gcr.io#gcrxio#g' kubernetes-dashboard.yaml
kubectl apply -f kubernetes-dashboard.yaml
6.查看容器狀態
kubectl get pods -n kube-system

在這裏插入圖片描述

7.查看dashbord被分配到哪個節點上
kubectl get pods --all-namespaces -o wide

在這裏插入圖片描述

8.查看映射到宿主機的端口
kubectl get svc -n kube-system

在這裏插入圖片描述

9.使用以下腳本查看令牌
kubectl describe secret/$(kubectl get secret -nkube-system |grep admin|awk '{print $1}') -nkube-system

在這裏插入圖片描述

10.火狐瀏覽器登錄 https://IP:端口

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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