安装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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
卡住了
root@ecs-b769:~# docker info | grep -i cgroup //查看cgroup是否是systemd
Cgroup Driver: systemd
Cgroup Version: 1
root@ecs-b769:~# kubeadm config print init-defaults > kubeadm.conf //将默认配置文件导出修改,主要有三个地方
root@ecs-b769:~# kubeadm config images pull --config kubeadm.conf //拉取image
root@ecs-b769:~# docker images //查询image
root@ecs-b769:~# kubeadm init --config kubeadm.conf //拉起k8s
... ....
查看cgroup是否是systemd,如果不是,
vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl restart kubelet
再次执行报端口错误
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
[ERROR Port-6443]: Port 6443 is in use
[ERROR Port-10259]: Port 10259 is in use
[ERROR Port-10257]: Port 10257 is in use
解决方案:发现杀死进程都没有用,最终重启一下kubeadm就可以了,如下:
[root@k8s-master01 ~]# kubeadm reset
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
安装网络插件
kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d8c4cb4d-9grvp 1/1 pending 0 61m
coredns-6d8c4cb4d-mcrsd 1/1 pending 0 61m
etcd-vm-16-8-centos 1/1 Running 1 61m
kube-apiserver-vm-16-8-centos 1/1 Running 1 61m
kube-controller-manager-vm-16-8-centos 1/1 Running 1 61m
kube-proxy-ms5vs 1/1 Running 0 61m
kube-scheduler-vm-16-8-centos 1/1 Running 1 61m
安装网络插件
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
需要过一会,coredns 就run起来了