IP | 角色 | 安装软件 |
---|---|---|
192.168.17.150 | k8s-Master | kube-apiserver kube-schduler kube-controller-manager docker flannel kubelet |
192.168.17.152 | k8s-node01 | kubelet kube-proxy docker flannel |
192.168.17.149 | k8s-node01 | kubelet kube-proxy docker flannel |
前期的初始化配置可以用ansible进行配置
详情请参考ansible初识,安装,配置文件说明,模块讲解,_秋为春的博客-CSDN博客
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
关闭selinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config && setenforce 0
关闭临时分区
swapoff -a
配置主机名
将桥接的IPv4流量传递到iptables的链,使设置生效
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
kube-proxy开启ipvs的前置条件
cat > /etc/sysconfig/modules/ipvs.modules <
可以看到已经生效了
配置docker源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
安装并重启
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
添加kubeenetes的yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
所有节点安装指定安装
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
部署初始化Master节点 (IP换成你自己的)
kubeadm init \
--apiserver-advertise-address=192.168.17.150 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
成功后截图
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
默认token的有效期为24小时,当过期之后,该token就不可用了,
如果后续有nodes节点加入,解决方法如下:
重新生成新的token
节点加入
使用kubeadm join 注册Node节点到Matser
kubeadm join 的内容,在上面kubeadm init 已经生成好了 node节点都要执行
kubeadm join 192.168.17.150:6443 --token cbpodu.9pisi4kebvnsqess \
> --discovery-token-ca-cert-hash sha256:8242906788bc9012b510646f0598d79efdbfbc19b3f4ef01b133bd1a65546909
输出内容
安装网络节点 只在主节点安装
在 https://github.com/kubernetes/dashboard/releases?page=3 找对应版本的网络版本
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta2/aio/deploy/recommended.yaml
成功后的截图
查看node状态
测试集群
在Kubernetes集群中创建一个pod,然后暴露端口,验证是否正常访问:
kubectl create deployment nginx --image=nginx //创建
kubectl expose deployment nginx --port=80 --type=NodePort //暴露
kubectl get pods,svc //获取
访问