安装3节点kubernetes集群
按照此教程安装dockerhttps://blog.csdn.net/u010606397/article/details/89816295注意:docker-base必须已经安装好docker、修改了docker镜像仓库、关闭防火墙配置一台k8s基础虚拟机模板复制一个k8s-base虚拟机出来。复制——>为所有网卡生成MAC地址——>完全复制。步骤图如下:...
《docker+k8s教程》
按照此教程安装docker https://blog.csdn.net/u010606397/article/details/89816295
注意:docker-base必须已经安装好docker、修改了docker镜像仓库、关闭防火墙
配置一台k8s基础虚拟机模板
复制一个k8s-base虚拟机出来。复制——>为所有网卡生成MAC地址——>完全复制。步骤图如下:
点击虚拟机设置,修改内存、cpu数量、网络
修改内存为2048 MB
k8s要求节点的cpu至少为2个
为了能让3个节点能相互通信,需要把网络设置为桥接。只设置一张网卡即可,不要设置多张网卡
启动虚拟机
由于kubernetes集群节点的名称不能相同,所以我们必须修centos的hostname
vim /etc/hostname
改为 k8sbase 保存退出
查看网卡信息
ip addr
我虚拟机的网卡名字为enp0s3,你们的可能不是这个名字
修改网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 #后面enp0s3是网卡名字,你们的可能不是这个名字
我们在window主机上输入 ipconfig /all 查看宿主机网络配置
先注释掉#BOOTPROTO=dhcp、#ONBOOT=no。然后填入
#使用静态地址
BOOTPROTO=static
#开机启动网卡
ONBOOT=yes
#最后3位数跟宿主机不同即可
IPADDR=192.168.1.200
#子网掩码
NETMASK=255.255.255.0
#使用宿主机网关
GATEWAY=192.168.1.1
#使用宿主机dns
DNS1=116.116.116.116
禁用SELINUX
vim /etc/selinux/config
SELINUX=disabled
关闭swap分区
vi /etc/fstab
注释掉 #/dev/mapper/centos-swap swap XXXXX
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
使用阿里云kubernetes镜像源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
查看仓库是否设置成功 yum repolist
关闭k8sbase
shutdown -h now
新建k8s01虚拟机
配置好k8s-base后,我们用这个虚拟机作为基础,复制出3台虚拟机。
首先复制出k8s01虚拟机,步骤跟上面复制出k8s-base虚拟机是一样的,主要步骤如下:
复制——>为所有网卡生成MAC地址——>完全复制
修改hostname为k8s01
vim /etc/hostname
修改ip IPADDR=192.168.XX.XX #也可以是与宿主机在同一网段的其他ip
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
重启虚拟机
reboot -h now
由于改了host,可能要删除xshell中的连接,关闭xshell,然后新建连接才能连接上虚拟机。查看可安装的程序包
yum list | grep kubeadm
安装kubelet-1.14.1-0、kubectl-1.14.1-0、kubeadm-1.14.1-0
yum install -y kubelet-1.14.0-0 kubernetes-cni-0.5.1
yum install -y kubeadm-1.14.0-0 kubectl-1.14.0-0
kubeadm version
启动、开机启动kubelet
systemctl start kubelet
systemctl enable kubelet
kubernetes所需组件在k8s.gcr.io组织下,但大陆是无法下载k8s.gcr.io组织下的镜像滴。
解决办法是从其他组织下载kubernetes组件的镜像,然后通过docker tag在本地生成k8s.gcr.io/XXX镜像。这样虚拟机本地就有k8s.gcr.io组织的镜像了。
拉取kubernetes主节点所需组件镜像,版本也是1.14.1
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/etcd-amd64:3.3.10
docker pull mirrorgooglecontainers/pause-amd64:3.1
docker pull coredns/coredns:1.3.1
通过docker tag 在本地生成k8s.gcr.io组织的镜像
docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1
docker tag mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1
docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1
docker tag mirrorgooglecontainers/etcd-amd64:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause:3.1
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
# 有时候会报iptables转发问题,iptables配置
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
使配置生效
sudo sysctl -p
初始化主节点,10.244.0.0/16是flannel网络插件的网段
kubeadm init --apiserver-advertise-address=主机ip --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16
如图所示代表初始化主节点成功。拷贝kubeadm join 这段命令出来,加入新节点时需要用到
kubeadm join 192.168.1.201:6443 --token m8oXXXXXvp5c \
--discovery-token-ca-cert-hash sha256:XXXX
###########################################################
#若在init的过程中卡住,另开一个终端,运行 如下命令查看日志
journalctl -f -u kubelet.service
#再次执行kubeadm init 之前要先重置节点状态,恢复到kubeadm init之前的状态
kubeadm reset
# token有效期是24小时,24小时候要新加入节点,可重新创建token
kubeadm token create
# 查看token
kubeadm token list
####################################################################
根据提示执行这两句命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
安装flannel网路插件。
https://raw.githubusercontent.com可能会被墙,可在本地主机上下载kube-flannel.yml,再拷贝到虚拟机中。
curl -O https://raw.githubusercontent.com/coreos/flannel/v0.12.0/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
查看主节点运行情况,等一会儿,网络插件就起来了。如果没配KUBECONFIG环境变量,执行此命令会报错
kubectl get pods -n kube-system -o wide
主节点就安装成功了。
新建k8s02虚拟机
同样通过k8s-base复制出k8s02虚拟机。
复制——>为所有网卡生成MAC地址——>完全复制
修改hostname为k8s02
vim /etc/hostname
修改ip IPADDR=192.168.XXX #也可以是与宿主机在同一网段的其他ip
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
# 有时候会报iptables转发问题,iptables配置
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
使配置生效
sudo sysctl -p
重启虚拟机
reboot -h now
安装kubelet-1.14.1-0、kubectl-1.14.1-0、kubeadm-1.14.1-0
yum install -y kubelet-1.14.0-0 kubernetes-cni-0.5.1
yum install -y kubeadm-1.14.0-0 kubectl-1.14.0-0
kubeadm version
启动、开机启动kubelet
systemctl start kubelet
systemctl enable kubelet
从节点所需的镜像比较少
docker pull mirrorgooglecontainers/pause-amd64:3.1
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.14.1
docker tag mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1
执行在初始化主节点时得到的命令,将节点加入到集群中
kubeadm join 初始化k8s-01时的命令:6443 --token m8oXXXXXvp5c \
--discovery-token-ca-cert-hash sha256:XXXX
在主节点执行 kubectl get nodes 即可查看集群中的所有节点
主节点忘记改hostname了,还是k8sbase,不管了,就酱。
##############################################################
# 删除节点需要执行以下两条命令
#在主节点上执行
kubectl delete node k8s03
# k8s03节点上重置状态
kubeadm reset
##############################################################
k8s03节点的操作跟k8s02是一样的,记得要改hostname、ip
更多推荐
所有评论(0)