虛擬機安裝k8s集羣部署記錄

準備虛擬機環境

1,安裝CentOS-7.4-64Bit鏡像node

2,部署NAT網絡,參考節點規劃,分配靜態ip(參考www.hifreud.com/2018/08/10/…linux

完成後,主機與虛擬機之間, 虛擬機與虛擬機之間,虛擬機與外部網絡都要互通git

節點規劃

本文準備部署一個 一主兩從三節點 Kubernetes集羣,總體節點規劃以下表所示:docker

主機名 IP 角色
k8s-master 192.168.233.3 k8s主節點
k8s-worker-1 192.168.233.4 k8s從節點
k8s-worker-2 192.168.233.5 k8s從節點

如下全部操做基於root用戶json

準備工做

全部節點關閉防火牆vim

systemctl disable firewalld.service systemctl stop firewalld.service複製代碼

禁用SELINUXcentos

setenforce 0​vim /etc/selinux/configSELINUX=disabled複製代碼

全部節點永久關閉 swapapi

vim /etc/fstab註釋掉swap那一行複製代碼

設置iptablesbash

vim /etc/sysctl.conf​net.bridge.bridge-nf-call-iptables = 1複製代碼

設置全部節點主機名網絡

hostnamectl --static set-hostname  k8s-master
hostnamectl --static set-hostname  k8s-worker-1
hostnamectl --static set-hostname  k8s-worker-2複製代碼

全部節點 主機名/IP加入 hosts解析

編輯 /etc/hosts文件,加入如下內容:

192.168.233.3 k8s-master192.168.233.4 k8s-worker-1192.168.233.5 k8s-worker-2複製代碼

爲了方便配置生效,虛擬機重啓

虛擬機拍攝快照(方便恢復到此狀態)

安裝

安裝準備

爲了方便添加軟件源,支持 devicemapper 存儲類型,安裝以下軟件包

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2複製代碼

添加 yum 軟件源

添加 Docker 穩定版本的 yum 軟件源

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo複製代碼

安裝 Docker

虛擬機中可能有docker-ce-selinux 版本太低,所以執行

yum -y install https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm複製代碼

安裝 Docker。

yum -y install docker-ce-17.03.2.ce複製代碼

添加加速器到配置文件

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF複製代碼

啓動服務

systemctl daemon-reload
systemctl start docker
systemctl enable docker.service複製代碼

打開iptables內生的橋接相關功能,已經默認開啓了,沒開啓的自行開啓

cat /proc/sys/net/bridge/bridge-nf-call-ip6tables

​cat /proc/sys/net/bridge/bridge-nf-call-iptables複製代碼

  

安裝 Kubernetes

kubeadm使用yum命令進行安裝,使用國內阿里雲的源,能夠安裝成功

cat >> /etc/yum.repos.d/kubernetes.repo <<EOF 
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF複製代碼

修改網絡配置

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF複製代碼

修改完成後執行sysctl --system應用。

安裝kubelet、kubeadm、kubectl

  • kubelet:負責管理pods和它們上面的容器,維護容器的生命週期

  • kubeadm:安裝K8S工具

  • kubectl:K8S命令行工具

yum -y install kubeadm-1.13.0 kubelet-1.13.0 kubectl-1.13.0 kubernetes-cni-0.6.0 --disableexcludes=kubernetes複製代碼

修改配置文件

vim /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS="--fail-swap-on=false"
KUBE_PROXY=MODE=ipvs複製代碼

設爲開機自啓

systemctl enable kubelet.service`複製代碼

啓動kubelet

systemctl start kubelet.service複製代碼

準備kubeadm 1.1 配置文件

apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
controllerManager:
    extraArgs:
        horizontal-pod-autoscaler-use-rest-clients: "true"
        horizontal-pod-autoscaler-sync-period: "10s"
        node-monitor-grace-period: "10s"
apiServer:
    extraArgs:
        runtime-config: "api/all=true"
kubernetesVersion: "stable-1.13"複製代碼

執行

kubeadm init --config kubeadm.yaml複製代碼

成功以後

輸出

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join 192.168.233.3:6443 --token 2t6fi0.g7b6593ifnhxu5na --discovery-token-ca-cert-hash sha256:*******************************************複製代碼


仔細看輸出內容,須要先執行輸出內容中的

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
複製代碼


這條命令是worker節點加入master節點的命令,先保存起來。(sha256:*******************************************是作了脫敏處理,以實際輸出爲準

kubeadm join 192.168.233.3:6443 --token 2t6fi0.g7b6593ifnhxu5na --discovery-token-ca-cert-hash sha256:*******************************************複製代碼


部署網絡插件

kubectl apply -f https://git.io/weave-kube-1.6複製代碼
相關文章
相關標籤/搜索