Install Kubernetes
Use kubeadm on Ubuntu
环境准备
环境
说明
操作系统
Ubuntu 18.04.5 LTS (Bionic Beaver)
IP
10.0.0.31
Hostname
k8scp
Swap
off
ufw
stop、disable
安装软件包
vim、curl、net-tools
# sudo执行命令
sudo -i
# 更新系统
apt-get update && apt-get upgrade -y
# 关闭swap分区
swapoff -a
#vim /etc/fstab
#注释掉/swapfile所在行
# 关闭并禁用防火墙
systemctl stop ufw
systemctl disable ufw
# 安装软件包
apt-get install curl net-tools vim -y
K8s部署
1. 安装 Docker
apt-get install docker.io -y
2. 配置 K8s 源
cat > /etc/apt/sources.list.d/kubernetes.list << EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 由于网络原因,此处使用国内阿里云的源
# 官方源如下:
# deb http://apt.kubernetes.io/ kubernetes-xenial main3. 为软件包添加 GPG 密钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg \
| apt-key add -
# 此处使用阿里云的密钥
# 官方密钥地址如下:
# https://packages.cloud.google.com/apt/doc/apt-key.gpg
4. 更新软件仓库
apt-get update
5. 安装 kubeadm
apt-get install -y \
kubeadm=1.20.1-00 kubelet=1.20.1-00 kubectl=1.20.1-00
apt-mark hold kubelet kubeadm kubectl
6. 下载网络插件 Calico 的配置文件
wget https://docs.projectcalico.org/manifests/calico.yaml
# less calico.yaml
# 预览 Calico 的配置文件
# 下面这两行是Clico网络的网段,分配给容器的IPV4池
# - name: CALICO_IPV4POOL_CIDR
# value: "192.168.0.0/16"7. 为 CP 节点添加本地DNS别名
echo "10.0.0.31 k8scp" >> /etc/hosts
# 此处的 10.0.0.31 为本机IP
8. 创建 kubeadm 的配置文件
cat > kubeadm-config.yaml << EOF
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: 1.20.1
controlPlaneEndpoint: "k8scp:6443"
networking:
podSubnet: 192.168.0.0/16
imageRepository: registry.aliyuncs.com/google_containers
EOF
# 此处用国内阿里云的仓库安装
# 若是官方源安装,则省掉 imageRepository 这一项
9. 初始化 CP 节点
kubeadm init --config=kubeadm-config.yaml --upload-certs \
| tee kubeadm-init.out
10. 非 root 用户访问集群,查看配置文件
# 退出 root 用户
exit
# 根据步骤9的输出操作如下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 查看配置文件
less .kube/config
11. 应用 Calico 网络配置
sudo cp /root/calico.yaml .
kubectl apply -f calico.yaml
12. 安装 bash-completion 软件包
sudo apt-get install bash-completion -y
exit
# 退出再登录
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> $HOME/.bashrc
# 由于kubectl命令太长,此处安装bash自动补全来简化输入
13. 查看集群配置(创建时使用的kubeadm-config.yaml)
sudo kubeadm config print init-defaults
Use kubeadm on CentOS
Last updated