k8s的部署方式:
1.kubeadm方式:
(1)需要在各个节点上运行docker和kubectlet,kubeadm
(2)master节点运行kubeadm的init,此时主节点跑起来了
(3)各个node节点分别执行join
2.具体安装步骤
关闭防火墙
master节点上:-----------------------------------------------------------------------------------------------------
cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 下载docker阿里云仓库
vim kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
注:gpgkey在https://mirrors.aliyun.com/kubernetes/yum/doc/下面找
yum repolist查看是否有kubernetes程序包可用。
复制docker-ce.repo kubernetes.repo复制到其他节点。
安装组件:
yum install docker-ce kubelet kubeadm kubectl
如果指定版本:yum install docker-ce-17.03
如果gpg有错误,可以wget下来,使用rpm --import yum-key.gpg,再次使用yum install
rpm --import rpm-package-key.gpg导入进来,这几个key都在https://mirrors.aliyun.com/kubernetes/yum/doc/ 下面
其他两个节点同样执行安装。
master节点:
vim /usr/lib/systemd/system/docker.service
加入:
Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
Environment="NO_PROXY=127.0.0.0/8.172.0.0.20/16“
加载完镜像后把这行删除。
systemctl daemon-reload
systemctl start docker
docker info 查看是否有报错。
cat /proc/sys/net/bridge/bridge-nf-call-iptables
cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
如果上面两个值是1,那么不需要修改。
查看kubelet安装了哪些文件:
rpm -ql kubelet
cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=
启动kubelet:
systemctl start kubelet
查看启动状态:
systemctl status kubelet
查看日志:
tail /var/log/messages
设置开启启动:
systemctl enable kubelet
systemctl enable docker
初始化kubeadm
查看kubeadm帮助文件:
kubeadm init --help
kubeadm --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
如果报swamp错误:
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
kubeadm --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
首先会拉取镜像:
kube-proxy
kube-apiserver
kube-scheduler
etcd
kube-controller
pause (为pod提供基础架构容器)
命令执行完成后,会有提示:
to start useing your cluster,you need to run ...
...
kubeadm join
查看apiserver有没有监听6443端口:
ss -tnl
按照”to start useing your cluster,you need to run ...“提示的操作执行三个操作:
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
权限修改
查看组件健康状态信息:
kubectl get cs
查看节点信息:
kubectl get nodes 会显示master的status为notready,还需要部署flanel
github上找到flanel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
查看docker镜像是否已经下载下来:
kubectl get pods -n kube-system 获取所有的pod,如果flannel已经下载好并且部署好
再次kubectl get nodes可以看到master已经是ready状态。
kubectl get ns 查看名称空间
-----------------------------------------------------------------------------------------------------
node节点:
yum install docker-ce kubelet kubeadm
1.修改docker.service的地址,与master节点一致。
2.复制/etc/sysconfig/kubelet 到其他节点
3.开机启动docker kubelet
4.启动docker
5.kubeadm join xxx --ignore-preflight-errors=Swap