采用kubeadm部署工具,部署kubernetes1.16.3


安裝kubenetes有5種部署工具,分別是kubeadm、kops、KRIB、Kubespray。本實驗采用的是kubeadm部署工具。如有想了解其他部署工具,請點擊這里

環境說明

                         

角色/主機名

系統版本

CPU

MEM

IP

master

CentOS 7.7

4

4

192.168.100.80

node01

CentOS 7.7

4

4

192.168.100.81

node02

CentOS 7.7

4

4

192.168.100.82

注:系統版本要求7.4+

環境准備

檢查網絡(三個主機)

ping baidu.com

檢查端口

Control-plane node

Protocol

Port Range

Purpose

TCP

6443

Kubernetes API server

TCP

2379-2380

etcd server client API

TCP

10250

Kubelet API

TCP

10251

kube-scheduler

TCP

10252

kube-controller-manager

Worker node(s)

Protocol

Port Range

Purpose

TCP 10250 Kubelet API
TCP 30000-32767 NodePort Services**

設置主機名映射(三個主機)

vim /etc/hosts

192.168.100.80    master
192.168.100.81    node01
192.168.100.82    node02

關閉防火牆和selinux(三個主機)

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -ri 's/(^SELINUX=).*/\1disabled/' /etc/selinux/config

配置docker和kubernetes源(三個節點)

yum install wget –y

cd /etc/yum.repos.d && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && cd -

cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Aliyun-kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF

下載docker(三個主機)

yum install docker-ce-18.06.3.ce-3.el7 -y

設置docker加速器和Cgroup drivers

mkdir /etc/docker

vim /etc/docker/daemon.json

{

  "exec-opts": ["native.cgroupdriver=systemd"],

  "registry-mirrors": ["https://registry.docker-cn.com"]

}

啟動docker並設置開機自啟動(三個主機)

systemctl start docker.service

systemctl enable docker.service

查看docker版本

docker --version

安裝kubeadm, kubelet and kubectl(master)

yum install kubelet kubeadm kubectl –y

安裝kubeadm,kubelet(nodes)

yum install kubelet kubeadm -y

設置Cgroup drivers和交換分區(三個主機)

vim /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS="--fail-swap-on=false --cgroup-driver=systemd"

說明:

--fail-swap-on:關閉交換分區,kubernetes不允許開啟交換分區

--cgroup-driver:指定Cgroup drivers用誰

設置kubectl開機自啟動(三個主機)

systemctl enable --now kubelet

設置必須的sysctl參數,讓這些參數重啟后仍然生效

cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

sysctl --system

使用kubernetes創建單個控制平面集群(master)

kubeadm init --kubernetes-version=v1.16.3 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12  --ignore-preflight-errors=Swap

說明:

--kubernetes-version:為控制平面選擇特定的Kubernetes版本。

--image-repository :指定鏡像部署的地址,原地址https://k8s.gcr.io不可用

--pod-network-cidr:pod的網絡地址

--service-cidr:server的網絡地址

是輸出一段字符保持好,后面需要用到

kubeadm join 192.168.100.80:6443 --token oc5h3c.bs1gikpbvgzbc86y \

     --discovery-token-ca-cert-hash sha256:e0e176b55cb5fbf1238351e8d009bf8cc1f9a69a283a47c9ec5766564657d6a0

每次啟動自動加載$HOME/.kube/config下的密鑰配置文件(master)

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

將nodes主機加入kubernetes集群(nodes)

kubeadm join 192.168.100.80:6443 --token oc5h3c.bs1gikpbvgzbc86y --discovery-token-ca-cert-hash sha256:e0e176b55cb5fbf1238351e8d009bf8cc1f9a69a283a47c9ec5766564657d6a0 --ignore-preflight-errors=Swap

注意:紅色部分是上面復制好的內容,加上黃色部分,請仔細看別忘了兩個橫杠。

安裝flannel網絡(master)

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

驗證:

查看kubernetes啟動的docker容器

[root@master ~]# kubectl get -A pods -o wide

4d53650a867f90564009942d1f20a4a

查看kubernetes集群節點

[root@master ~]# kubectl get nodes

6065384f1d9ae8c4b2b3a942e83bafa

查看各服務器的鏡像

docker image list

90017b56c492e4711302cd3c7a01ce4

878fcb69568466fd5610b54a5e2339d

525d85553dd654a88ddf6c0ef832ef5

查看下個內容kubernetes資源清單之pod點擊這里

遇到什么報錯,歡迎評論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM