使用kubeadm快速部署一套K8S集群

基础环境说明

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

配置主机名

使用kubeadm快速部署一套K8S集群_第1张图片

 将桥接的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

配置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

成功后截图

使用kubeadm快速部署一套K8S集群_第2张图片

使用kubeadm快速部署一套K8S集群_第3张图片 根据提示创建

 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

输出内容

使用kubeadm快速部署一套K8S集群_第4张图片

 安装网络节点 只在主节点安装

在 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

成功后的截图

使用kubeadm快速部署一套K8S集群_第5张图片

查看node状态

使用kubeadm快速部署一套K8S集群_第6张图片

测试集群

在Kubernetes集群中创建一个pod,然后暴露端口,验证是否正常访问:

kubectl create deployment nginx --image=nginx  //创建
kubectl expose deployment nginx --port=80 --type=NodePort  //暴露
kubectl get pods,svc    //获取

使用kubeadm快速部署一套K8S集群_第7张图片

 访问

使用kubeadm快速部署一套K8S集群_第8张图片

你可能感兴趣的:(docker,容器,运维,k8s)