k8s flannel 和dns不能初始化

青藤门下走狗 2019-01-23 04:06:50
k8s安装后,查看状态,dns pod 为pending状态,flannel为Init:ImagesPullBackoff,
/etc/文件夹下没有cni文件夹,、opt下有cni文件夹。请问什么原因,附上我的安装脚本。

# 修改本地域名解析文件
echo "${master_ip} ${master_name}" >> /etc/hosts
echo "${node1_ip} ${node1_name}" >> /etc/hosts

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 临时关闭selinux
setenforce 0
# 永久关闭selinux
sed -i 's/enforcing/disabled/g' /etc/selinux/config

# 启用iptables转发
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 使iptables设置生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

# 临时关闭swap
swapoff -a
# 永久关闭swap
echo "vm.swappiness=0" >> /etc/sysctl.d/k8s.conf
sysctl -p /etc/sysctl.d/k8s.conf

# 设置全局代理
echo "export http_proxy=${proxy_url}" >> /etc/profile
# 设置yum代理
echo "proxy=${proxy_url}" >> /etc/yum.conf
# 使配置文件生效
source /etc/profile

## 安装docker

# 安装
yum install -y docker

# 启动Docker服务
systemctl enable docker
systemctl start docker

# 查看Docker信息
docker info

# 设置Docker代理
mkdir /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http_proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=${proxy_url}"
EOF

# 重启docker
systemctl daemon-reload && systemctl restart docker

# 查看代理是否设置成功
docker info | grep -i proxy
# 查看docker启动参数(kubelet启动参数应与docker保持一致)
docker info | grep -i cgroup

# 导入Docker镜像
docker load -i images/cni.tar
docker load -i images/etcd.tar
docker load -i images/etcd-amd64.tar
docker load -i images/k8s-dns-dnsmasq-nanny-amd64.tar
docker load -i images/k8s-dns-kube-dns-amd64.tar
docker load -i images/k8s-dns-sidecar-amd64.tar
docker load -i images/kube-apiserver-amd64.tar
docker load -i images/kube-controller-manager-amd64.tar
docker load -i images/kube-controllers.tar
docker load -i images/kube-proxy-amd64.tar
docker load -i images/kubernetes-dashboard-amd64.tar
docker load -i images/kube-scheduler-amd64.tar
docker load -i images/node.tar
docker load -i images/pause-amd64.tar

# 查看镜像并重启docker
docker images
systemctl restart docker

# 安装kubeadm、kubelet并启动服务
yum install -y rpm/*.rpm
systemctl enable kubelet
systemctl start kubelet

# 修改kubelet配置文件
sed -i "s/cgroup-driver=cgroupfs/cgroup-driver=systemd --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sed -i "s/allow-privileged=true/allow-privileged=true --fail-swap-on=false/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

# 启动kubelet服务
systemctl daemon-reload
systemctl restart kubelet

# 初始化master
# --token-ttl 0表示永久用同一个token
kubeadm init --kubernetes-version=${k8s_version} --token-ttl 0 --pod-network-cidr=${pod_networkcidr} --apiserver-advertise-address=${master_ip}

# 配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

# 检查组件状态(需等待一段时间)
kubectl get pods -n kube-system

# 安装flannel组件
kubectl apply -f yml/kube-flannel.yml

# 查看flannel组件状态
kubectl get pods -n kube-system
...全文
392 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,163

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧