kubeadm安裝K8S v1.12

環境:

操作系統:centos7.4 64
服務器:3臺
環境:騰訊雲

mster node1 node2 都要操作

修改主機名稱:master node1 node2

vim /etc/hosts
master 172.17.0.90
node1  172.17.0.140
node2  172.17.0.9
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness = 0
EOF
sysctl --system
yum install ipset ipvsadm conntrack-tools.x86_64 -y
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
 #!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4"
for kernel_module in \${ipvs_modules}; do
 /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
 if [ $? -eq 0 ]; then
 /sbin/modprobe \${kernel_module}
 fi
done
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules
sh /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
systemctl stop firewalld && systemctl disable firewalld
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/.*swap.*/#&/' /etc/fstab
echo "*/5 * * * * /usr/sbin/ntpdate time.windows.com > /dev/null 2>&1" >> /var/spool/cron/root

安裝docker

yum install container-selinux libseccomp libtool-ltdl -y
rpm -ivh https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm
systemctl start docker && systemctl enable docker
cat > /etc/docker/daemon.json << EOF
{
     "registry-mirrors": ["https://8vtb3cuu.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker

安裝kubeadm

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 install kubelet-1.12.1 -y
yum install kubeadm-1.12.1 -y

master 操作

kubeadm config images list --kubernetes-version v1.12.1
會輸入對應的版本 然後改下面的腳本

下面是我自己弄好的腳本 指接下載執行

wget https://raw.githubusercontent.com/ywmack/k8s/master/down-master-images.sh
chmod 755 down-master-images.sh
/bin/bash down-master-images.sh
kubeadm config print-default
wget https://raw.githubusercontent.com/ywmack/k8s/master/kubeadm-config.yaml
systemctl enable kubelet.service

執行Init創建集羣

kubeadm init --config kubeadm-config.yaml
最後一行 包含join的輸出 記錄下來
kubeadm join 172.17.0.90:6443 --token ja8mxt.712olcqi3r3txon4 --discovery-token-ca-cert-hash sha256:a26b65db27c0eb21467c4a3371deb4b0b5b82580f52482c02fc653c98d7f2570

root用戶設置環境變量

vim /etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf
source /etc/profile

添加Pod網絡組件

wget https://raw.githubusercontent.com/ywmack/k8s/master/kube-flannel.yml
kubectl apply -f kube-flannel.yml

常用命令

查看集羣狀態
kubectl get cs
查看節點,pods
kubectl get nodes
kubectl get pods,svc -n kube-system

node節點操作

有幾個節點就操作幾個
下載鏡像

wget https://raw.githubusercontent.com/ywmack/k8s/master/down-node-images.sh
chmod 755 down-node-images.sh
/bin/bash down-node-images.sh

加入羣集
執行master最後返回的一行

kubeadm join 172.17.0.90:6443 --token r38v3g.ebvfzkeg00sqfck6 --discovery-token-ca-cert-hash sha256:c3eca73760b232734edf803c8c382dfee23afb5f4fce0d59384820352b7ca90f

問題:

[root@master ~]# kubectl get nodes
NAME     STATUS     ROLES    AGE   VERSION
master   NotReady   master   59m   v1.12.1
node1    NotReady   <none>   21m   v1.12.1
node2    NotReady   <none>   20m   v1.12.1
[root@master ~]#  journalctl -f -u kubelet
-- Logs begin at Tue 2019-04-30 14:33:47 CST. --
Apr 30 15:57:17 master kubelet[6320]: E0430 15:57:17.877196    6320 azure_dd.go:147] failed to get azure cloud in GetVolumeLimits, plugin.host: master
Apr 30 15:57:20 master kubelet[6320]: W0430 15:57:20.455231    6320 cni.go:188] Unable to update cni config: No networks found in /etc/cni/net.d
Apr 30 15:57:20 master kubelet[6320]: E0430 15:57:20.455358    6320 kubelet.go:2167] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Apr 30 15:57:25 master kubelet[6320]: W0430 15:57:25.456460    6320 cni.go:188] Unable to update cni config: No networks found in /etc/cni/net.d
Apr 30 15:57:25 master kubelet[6320]: E0430 15:57:25.456584    6320 kubelet.go:2167] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Apr 30 15:57:27 master kubelet[6320]: E0430 15:57:27.885210    6320 azure_dd.go:147] failed to get azure cloud in GetVolumeLimits, plugin.host: master
Apr 30 15:57:30 master kubelet[6320]: W0430 15:57:30.457614    6320 cni.go:188] Unable to update cni config: No networks found in /etc/cni/net.d
Apr 30 15:57:30 master kubelet[6320]: E0430 15:57:30.457736    6320 kubelet.go:2167] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Apr 30 15:57:35 master kubelet[6320]: W0430 15:57:35.458794    6320 cni.go:188] Unable to update cni config: No networks found in /etc/cni/net.d

解決辦法

vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

修改文件內容: /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/ --cni-bin-dir=/opt/cni/bin"

systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

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