kubeadm部署K8S集群v1.16.3


 

本次先更新kubeadm快速安裝K8S,二進制安裝上次沒寫文檔,后續更新,此次最新的版本是V1.16.3

1、關閉防火牆、關閉selinux、關閉swapoff -a

systemctl stop firewalld
selinux=disabled
swapoff -a

2、修改系統參數

創建 /etc/sysctl.d/k8s.conf 文件
 
cat > /etc/sysctl.d/k8s.conf << EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

 

生效配置文件
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

修改hosts

cat > /etc/hosts << EOF
master 192.168.200.221
node1 192.168.200.222
node2 192.168.200.223
EOF

 3、安裝docker

1)常用方法
a、配置yum源
阿里鏡像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

Docker官方鏡像源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

b、安裝docker
顯示docker-ce所有可安裝版本:
yum list docker-ce --showduplicates | sort -r
安裝指定docker版本
yum install docker-ce-18.06.1.ce-3.el7 -y
# 修改docker配置
vi /lib/systemd/system/docker.service
找到這行,王、后面加上存儲目錄,例如這里是 --graph /apps/docker (此處也可以另外建一個文件去指定,詳細參考下面方法)
ExecStart=/usr/bin/docker --graph /apps/docker
啟動docker並設置docker開機啟動
systemctl enable docker
systemctl start docker

 

2)本地rpm包安裝
a)下載地址
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
17版本請把docker-ce-selinux也一起下載
b、創建掛在目錄以及阿里源的文件
mkdir -p /data/docker-root
mkdir -p /etc/docker
touch /etc/docker/daemon.json
chmod 700 /etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{
    "graph":"/data/docker-root",
    "registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com"]
}
EOF
這里可能會涉及到要求docker用systemd,我這個版本沒有用到,用到反而報錯,如果需要用到,就在上面文件加入這句
"exec-opts":["native.cgroupdriver=systemd"],

 

c、安裝docker
yum localinstall ./docker* -y
啟動docker並設置docker開機啟動
systemctl enable docker
systemctl start docker

 

3)二進制安裝
a)下載地址
二進制包下載地址:https://download.docker.com/linux/static/stable/x86_64/
b)解壓安裝
tar zxvf docker-18.09.6.tgz
mv docker/* /usr/bin
mkdir /etc/docker
mv daemon.json /etc/docker
mv docker.service /usr/lib/systemd/system
啟動docker並設置docker開機啟動
systemctl start docker
systemctl enable docker
c)涉及到的daemon.json和docker.service的文件內容
為了配置docker的目錄和docker改為systemd以及阿里源
    "exec-opts":["native.cgroupdriver=systemd"],
cat > /etc/docker/daemon.json << EOF
{
    "graph":"/data/docker-root",
    "registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com"]
}
EOF
為了設置命令啟動的
cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target firewalld.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
[Install]
WantedBy=multi-user.target
EOF

 

4、安裝kubeadm、kubelet、kubectl(每個節點)
1)配置可用的國內yum源用於安裝
cat <<EOF > /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
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

 

--官網的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
exclude=kube*
EOF

 

2)安裝kubeadm、kubelet、kubectl 
查看相關版本,然后來選擇
yum list kubelet --showduplicates | sort -r
yum list kubeadm --showduplicates | sort -r
yum list kubectl --showduplicates | sort -r
安裝,默認最新版
yum install -y kubelet kubeadm kubectl
指定版本
yum install -y kubeadm-1.16.3-0 kubelet-1.16.3-0 kubectl-1.16.3-0
安裝 kubeadm 時候會默認安裝 kubectl ,所以不需要單獨安裝kubectl
systemctl daemon-reload && systemctl enable kubelet && systemctl start kubelet 

 


5、啟動K8S集群
1)kubeadm init
kubeadm init --apiserver-advertise-address=192.168.200.221 --image-repository registry.aliyuncs.com/google_containers --ignore-preflight-errors=all  --kubernetes-version v1.16.3 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

 

kubernetes-version 后面的值通過  kubelet --version 查看
里面需要下載多個鏡像,所以這指定鏡像源
最后成功會有如下信息需要在主節點創建
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
如果時root用戶可以直接export
export KUBECONFIG=/etc/kubernetes/admin.conf 
然后在每個node節點創建
kubeadm join 192.168.200.221:6443 --token jc8adl.4esmazfzlw6uee9k \
    --discovery-token-ca-cert-hash sha256:6655ce24a5d0b4aa8169ee6d66bd1220e42b05a4a792a947f8fe8c1819b43cb3 
若有部分錯,請加上這個參數--ignore-preflight-errors=all

 

6、最后得到的node是notready
因為還沒有安裝網絡插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

 

--我的電腦開三台虛擬機就卡的不行了,所以后續的使用沒有去操作--


免責聲明!

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



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