An open API service indexing awesome lists of open source software.

https://github.com/bota5ky/kubernetes-sample

learn to build k8s clusters
https://github.com/bota5ky/kubernetes-sample

Last synced: 4 months ago
JSON representation

learn to build k8s clusters

Awesome Lists containing this project

README

          

环境

```
VMware_17.5.2-23775571_Setup.exe
CentOS-7-x86_64-Minimal-2009.iso
kubernetes 1.23.6
docker-ce-20.10.12
```

系统设置

```bash
# 关闭防火墙,禁用开机启动
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
setenforce 0 #临时,getenforce 0查看
# 禁用交换分区,关闭后需要重启虚拟机
swapoff -a #临时
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久,删除或注释掉/etc/fstab里的swap设备的挂载命令
# 根据规划设置主机名
hostnamectl set-hostname
# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.239.128 k8s-master
192.168.113.121 k8s-node1
192.168.113.120 k8s-node2
EOF
# 将桥接的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 #生效
# 时间同步,若同步失败就换国内时间服务器
yum install ntpdate -y
ntpdate time.windows.com
```

yum 安装 ifconfig 报错处理

```bash
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改
ONBOOT=yes
DNS1=114.114.114.114
# 重启网络
systemctl restart network
```

安装docker

```bash
# 移除旧版本的 Docker(如果有)
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 Docker 仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 替换下载源为阿里源
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 更新源
yum makecache fast
# 查看可安装版本
yum list docker-ce --showduplicates | sort -r
# 选择版本安装
sudo yum install -y docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io
# 设置开机启动并启动Docker
systemctl enable docker && systemctl start docker
# 配置镜像下载加速,若kubelet启动失败,需要设置k8s、docker驱动器一致
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors" : [
"http://hub-mirror.c.163.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# 重启生效
systemctl restart docker
docker info | grep 'Server Version'
```

配置yum源

```bash
cat > /etc/yum.repos.d/kubernetes.repo <> ~/.bash_profile
source ~/.bash_profile
```

安装CNI

```bash
curl https://calico-v3-25.netlify.app/archive/v3.25/manifests/calico.yaml -O -k
# 修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改为与初始化的 cidr 相同。默认已注释,可以不改
# 删除镜像 docker.io/ 前缀,避免下载过慢导致失败
sed -i 's#docker.io/##g' calico.yaml
kubectl apply -f calico.yaml
```

kubectl 短命令

```bash
# 在~/.bashrc加入,source ~/.bashrc生效
alias k='kubectl'
complete -o default -F __start_kubectl k
source <(kubectl completion bash)
# 代码补全
yum -y install bash-completion
```