笔记 - Kubeadm部署k8s集群

Kubeadm部署k8s集群

一、环境准备

主机名系统版本DockerKubenetes
masterCentOS Linux release 7.2.1511 (Core)18.03.1-cev1.18.3
slave1CentOS Linux release 7.2.1511 (Core)18.03.1-cev1.18.3
slave2CentOS Linux release 7.2.1511 (Core)18.03.1-cev1.18.3

二、操作系统环境

设置主机名
#三台主机分别设置
cat > /etc/hostname << EOF
master
EOF
cat > /etc/hostname << EOF
slave1
EOF
cat > /etc/hostname << EOF
slave2
EOF
# 配置免密登录
# master 节点执行
ssh-keygen # 回车
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
# 关闭防火墙
for i in 'master' 'slave1' 'slave2';do systemctl stop firewalld && systemctl disable firewalld;done 
# 各节点关闭swap
sed 's/^\/dev\/mapper\/centos-swap/#&/' /etc/fstab

三、每台机器添加yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 查看版本
yum search docker --showduplicates
yum -y install docker-ce-18.03.1-ce
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install kubeadm-1.18.3-0 kubelet-1.18.3-0 kubectl-1.18.3-0
systemctl start docker && systemctl enable docker 
systemctl start kubelet && systemctl enable kubelet 
kubeadm config images list # 查看需要的image版本

四、拉取国内镜像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.20
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.20
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.20
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7



docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.20 k8s.gcr.io/kube-apiserver:v1.18.20
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20 k8s.gcr.io/kube-controller-manager:v1.18.20
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.20 k8s.gcr.io/kube-scheduler:v1.18.20
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.20 k8s.gcr.io/kube-proxy:v1.18.20
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.9-1 k8s.gcr.io/etcd:3.4.3-0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0 k8s.gcr.io/coredns:1.6.7


docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.20
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.20
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.20
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7

五、初始化master节点

kubeadm init --v=5 --kubernetes-version=v1.18.3
# 打印信息
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join xx:xx:xx:xx:6443 --token ... \
    --discovery-token-ca-cert-hash sha256:...
#执行以上信息
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

六、网络配置CNI插件,选用Weave Net

## k8s网络插件,本例使用weave作为 k8s的网络插件
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

k8s的网络插件介绍

七、加入其他worker节点

在slave节点上执行

kubeadm join xx:xx:xx:xx:6443 --token ... \
    --discovery-token-ca-cert-hash sha256:...

八、查看节点状态

kubectl get nodes -owide 
# 添加节点label
kubectl label node slave1 node-role.kubernetes.io/worker=
kubectl label node slave2 node-role.kubernetes.io/worker=
# 删除master节点禁止调度五污点
kubectl taint node master node-role.kubernetes.io/master-

在这里插入图片描述

# 查看所有pod状态
kubectl get pods -owide -A

在这里插入图片描述
如果节点或者pod存在NotReady、非Running状态,通过kubectl describe [pod|node]命令查看节点或者pod events信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值