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
cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
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
关闭防火墙,执行下面命令
kubelet
现在在不断的重启,它在等待kubeadm
告诉它接下来干啥确保
kubelet
用的cgroup
驱动和Docker
用的是相同的,可以通过下面的命令获取配置进行比较
如果安装由于访问问题的话,可以配置代理进行再执行上述命令
注意
setenforce 0
作用是,关闭SELinux,这样就可以让容器访问到主机的文件系统(否则启动k8s组件容器时,会出现没权限访问主机上的证书、密钥的错误)配置网桥参数,使得流量不会绕过
iptable
执行命令如下
由于镜像都是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
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>
后续安装Flannel网络插件,所以加配上述参数
安装成功后,在输出信息中,要备份记录下最后的这句话,以备后续在
node
上执行这个命令来加入集群
配置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>
作者:stepyu
链接:https://www.jianshu.com/p/3b305af8e15d