kubeadm 安装kubernetes
-
安装docker
用你系统对应的包管理工具来安装,centos的安装如下yum install -y docker systemctl enable docker && systemctl start docker
-
安装
kubeadm
,kubelet
,kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch 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 EOF setenforce 0 yum install -y kubelet kubeadm kubectl systemctl enable kubelet && systemctl start kubelet
- 如果安装由于访问问题的话,可以配置代理进行再执行上述命令
- 注意
setenforce 0
作用是,关闭SELinux,这样就可以让容器访问到主机的文件系统(否则启动k8s组件容器时,会出现没权限访问主机上的证书、密钥的错误) - 配置网桥参数,使得流量不会绕过
iptable
执行命令如下
cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
-
kubelet
现在在不断的重启,它在等待kubeadm
告诉它接下来干啥 - 确保
kubelet
用的cgroup
驱动和Docker
用的是相同的,可以通过下面的命令获取配置进行比较
docker info | grep -i cgroup cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
如果不一样,最好是修改一下
docker
的配置,从/usr/lib/systemd/system/docker.service
中找到native.cgroupdriver
配置
重启一下docker
,执行以下命令systemctl daemon-reload systemctl restart docker
- 关闭防火墙,执行下面命令
systemctl stop firewalld && systemctl disable firewalld
-
由于镜像都是google的镜像仓库中的镜像,给
Docker
配置代理来使得接下来的操作中拉取镜像成功,执行以下命令mkdir /etc/systemd/system/docker.service.d touch /etc/systemd/system/docker.service.d/http-proxy.conf echo <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://IP:PORT" "HTTPS_PROXY=http://IP:PORT" EOF
-
初始化
master
kubeadm init --pod-network-cidr=10.244.0.0/16
- 后续安装Flannel网络插件,所以加配上述参数
- 安装成功后,在输出信息中,要备份记录下最后的这句话,以备后续在
node
上执行这个命令来加入集群
You can now join any number of machines by running the following on each node as root: kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
-
配置
kubectl
,使其能访问api-server
非root
用户执行下面的命令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 KUBECONFIG=/etc/kubernetes/admin.conf
-
安装
Pod network
,安装Flannel
执行下面的命令kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
此时可以通过
kubectl get pods --all-namespaces
查看 集群情况,
一旦kube-dns
启动运行起来后,就可以加入其它nodes -
Master
节点加入被编排的node中,形成单节点kubernetes
集群, 执行下面的命令kubectl taint nodes --all node-role.kubernetes.io/master-
-
加入
node
先执行1、2、3步,完成安装Docker、kubelet、kubeadm,以及管理防火墙、关闭SELunix,配置代理等
加下来执行如下命令kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
网友评论