使用Kubeadm搭建Kubernetes集群

安装文档

使用kubeadm安装Kubernetes单节点Master

修改hostname

subdomain must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘example.com’, regex used for validation is ‘a-z0-9?(.a-z0-9?)*’)

# 修改 hostname
hostnamectl set-hostname k8s.master
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "172.16.0.4   $(hostname)" >> /etc/hosts
###########################################
# 修改 hostname
hostnamectl set-hostname k8s.worker1
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "172.16.0.5   $(hostname)" >> /etc/hosts

安装docker/kubelet

以root身份在所有节点执行下面命令,安装软件如下:

  • docker
  • nfs-utils
  • kubectl/kubeadm/kubelet
    快速安装
# 在 master 节点和 worker 节点都要执行
curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh

Kubernetes集群安装

1.1. 初始化master节点
# 只在 master 节点执行
export MASTER_IP=172.16.0.4
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=k8s.apiserver
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.2/init_master.sh | sh
  • 初始化文件init_master.sh如下
#!/bin/bash

# 只在 master 节点执行

# 脚本出错时终止执行set -e

# 查看完整配置选项 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2rm -f ./kubeadm-config.yaml
cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.2
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
  serviceSubnet: "10.96.0.0/16"
  podSubnet: "${POD_SUBNET}"
  dnsDomain: "cluster.local"
EOF

# kubeadm init# 根据您服务器网速的情况,您需要等候 3 - 10 分钟
kubeadm init --config=kubeadm-config.yaml --upload-certs

# 配置 kubectlrm -rf /root/.kube/
mkdir /root/.kube/
cp -i /etc/kubernetes/admin.conf /root/.kube/config

# 安装 calico 网络插件# 参考文档 https://docs.projectcalico.org/v3.9/getting-started/kubernetes/rm -f calico.yaml
wget https://docs.projectcalico.org/v3.9/manifests/calico.yaml --no-check-certificate
sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml
kubectl apply -f calico.yaml
1.2. 检查master初始化结果
# 只在 master 节点执行
# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

# 查看 master 节点初始化结果
kubectl get nodes -o wide

初始化worker节点

获取join命令参数

在master节点上执行

# 只在 master 节点执行
kubeadm token create --print-join-command

获取join命令参数如下:

kubeadm join k8s.apiserver:6443 --token oxopu7.s6zecii7vu2zubya     --discovery-token-ca-cert-hash sha256:edd00822948c6d02c05c0ee86ab99ee7793f404dc7ddeb29bd9ad42406db5ff9 
初始化worker

针对所以的worker节点执行


# 只在 worker 节点执行# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
export MASTER_IP=172.16.0.4
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=k8s.apiserver
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts

# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join k8s.apiserver:6443 --token 75qhi3.fzm8ug6gjk6hmbaf     --discovery-token-ca-cert-hash sha256:0a225a6852276278c8c76aeab59b11b31aeefcc2b742f3a5ef9ad8105de839d3
查看运行的Pod
kubectl describe pods   -n kube-system
参考文献

使用kubeadm安装kubernetes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值