集群方案:
发行版:ubuntu16.04
内核:4.4.0-62-generic·
版本:Kubernetes: 1.14.0·
网络方案:flannel network
通常我们安装的系统默认都是启用交换内存的,但是kubelet(1.8版本开始)是不支持交换内存。
swapoff -a
编辑/etc/hostname并添加:
kube-master
将以下行添加到/etc/hosts:
192.168.0.2 kube-master
192.168.0.3 kube-worker-1
192.168.0.4 kube-worker-2
完成以上系统环境配置后,建议重启一下服务器
Docker安装有很多,以下是其中一种:
1.删除系统上可能存在的旧版Docker:
sudo apt remove docker docker-engine docker.io
2.确保您拥必要的软件包以允许使用Docker的存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
3.添加Docker的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4.验证GPG密钥的指纹:
sudo apt-key fingerprint 0EBFCD88
5.添加stableDocker存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
6.更新软件包索引并安装Docker CE:
sudo apt updates
sudo apt install docker-ce
7.将限的Linux用户帐户添加到该docker组:
sudo usermod -aG docker $USER
8.通过运行内置的“Hello World”程序检查安装是否成功:
docker run hello-world
9.安装kubeadm,kubectl和kubelet
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -e
echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' | sudo tee /etc/apt/sources.list.d/kubernetes.lists
sudo apt updates
sudo apt install -y kubelet kubeadm kubectl
1.在初始化的时候会在https://dl.k8s.io上拖拉镜像,由于我是部署在国内的节点,所以就需要手动拉镜像并修改下标签。
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1
docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1
docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.14.1
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd-amd64:3.3.10
docker pull coredns/coredns:1.3.1
docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag docker.io/coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
docker rmi mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1
docker rmi mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1
docker rmi mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1
docker rmi mirrorgooglecontainers/kube-proxy-amd64:v1.14.1
docker rmi mirrorgooglecontainers/pause:3.1
docker rmi mirrorgooglecontainers/etcd-amd64:3.3.10
docker rmi coredns/coredns:1.3.1
2.初始化master节点
kubeadm init --pod-network-cidr=10.0.0.0/16 --apiserver-advertise-address=0.0.0.0
以上输出就是初始化完毕了,注意:保留kubeadm join….这句信息,后面节点加入使用。
3.在主节点上,配置kubectl工具:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4.检查节点的状态kubectl get nodes。输出类似于:
这里可以看出master的状态是NotReady,这是由于还没有安装cni插件
5.安装flannel network add-on:--CNI
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
然后现在重新kubectl get nodes检查就会发现是Ready状态了。
6.使用kubectl get pods --all-namespaces以查看在kube-system命名空间中创建的pod,当kube-system的状态都是running才算是初始化完成了。
当出现某个pod的状态异常时,可以使用kubectl describe pod $namespace来查看错误的原因
1.kubeadm join使用初始化输出的信息
2.在主节点上,用于kubectl查看从节点现在是否已就绪
文章来自公众号:睿江云计算
睿江云官网链接:https://www.eflycloud.com/home?from=RJ0024
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。