![](https://s5-media.51cto.com/ost/pc/static/noavatar.gif)
回复
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce-19.03.5 docker-ce-cli-19.03. containerd.io -y
systemctl start docker
systemctl enable docker
docker version
配置Docker
exec-opts
"registry-mirrors": ["https://dockerproxy.com" ]
一键脚本
touch /etc/docker/daemon.json
echo '{ "exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://dockerproxy.com" ] }' > /etc/docker/daemon.json
service docker restart
# 开机自动启动,防止需要手动启动
systemctl enable docker.service
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
yum install -y wget
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache
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=1
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
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum install -y kubelet-1.19.4 kubectl-1.19.4 kubeadm-1.19.4
systemctl enable kubelet
kubeadm init --apiserver-advertise-address=xxx --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
coredns
一直处于pengding 模式
kubectl describe po <peoblem podid> -n <peoblem podid>
之后描述内容:warning 缺少一个xx 文件的# 获取安装文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 执行生成flannel 容器
kubectl apply -f kube-flannel.yml
kubectl describe po <po> -n <namespace>
,查看描述类似kubectl taint nodes k8s-master1 node-role.kubernetes.io/master=:NoSchedule node/k8s-master1 taintedkubectl taint nodes --all node-role.kubernetes.io/master-
docker pull kubeedge/cloudcore:v1.12.1
kubeedge\keadm
weget可能受到网络限制,下载过慢可以手动下载,放入服务器并且注释wgethostnamectl set-hostname cloud-01
wget https://github.com/kubeedge/kubeedge/releases/download/v1.12.1/keadm-v1.12.1-linux-amd64.tar.gz
tar zxvf keadm-v1.12.1-linux-amd64.tar.gz
chmod +x keadm-v1.12.1-linux-amd64/keadm/keadm
mv keadm-v1.12.1-linux-amd64/keadm/keadm /usr/local/bin
## --advertise-address 公网ip
keadm init --advertise-address=xxx --set iptablesManager.mode="external" --profile version=v1.12.1
kubectl get pod -n kubeedge
# 安装metrics-server
#kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# 添加 --kubelet-insecure-tls 参数
#kubectl patch deploy metrics-server -n kube-system --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--kubelet-insecure-tls"}]'
# daemon patch
# 禁止 kubectl-proxy 调度
kubectl get daemonset -n kube-system | grep -v NAME | awk '{print $1}' | xargs -n 1 kubectl patch daemonset -n kube-system --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/affinity", "value":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"node-role.kubernetes.io/edge","operator":"DoesNotExist"}]}]}}}}]'
keadm version
kubectl get pod -n kubeedge
:有二个podcloudcore....
and cloud-iptables-manager...
后面是我们在启动cloudcore的时候指定了iptablesManager.mode="external"
docker pull eclipse-mosquitto:1.6.15
and kubeedge/installation-package
hostnamectl set-hostname edge-01
wget https://github.com/kubeedge/kubeedge/releases/download/v1.12.1/keadm-v1.12.1-linux-amd64.tar.gz
tar zxvf keadm-v1.12.1-linux-amd64.tar.gz
chmod +x keadm-v1.12.1-linux-amd64/keadm/keadm
mv keadm-v1.12.1-linux-amd64/keadm/keadm /usr/local/bin
keadm gettoken
keadm join --token=$TOKEN --cloudcore-ipport=$SERVER --kubeedge-version=1.12.1
kubectl get nodes -A -w
,在边缘启动成功之后,需要等待一会云端的k8s 才会显示加入节点,看到节点处于ready模式