Contents
  1. 1. K8S 学习笔记之–集群配置
    1. 1.1. 安装初始化工具
    2. 1.2. 初始化 kubeadm(master)
    3. 1.3. Node 加入
    4. 1.4. 安装网络插件(master)
    5. 1.5. 相关操作命令

K8S 学习笔记之–集群配置

借助 kubeadm 这一工具快速完成搭建与学习.

安装初始化工具

主要是: kubeadm, kubelet, kubectl (所有机器上都需要)

创建 repo 源:

1
2
3
4
5
6
7
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

安装:

yum install -y kubelet kubeadm kubectl –disableexcludes=kubernetes

image

启动初始化工具并设定随机启动:

systemctl enable kubelet && systemctl start kubelet

解除防火墙限制:

1
2
3
4
5
6
7
vi /etc/sysctl.d/k8s.conf

# 加入以下内容
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1

# 刷新配置使其生效
sysctl --system

image

预下载/拉取镜像(Master 机器执行):

kubeadm config images list # 查看集群初始化所需镜像及依赖版本号

image

一般会失败,需要手动拉取,从阿里云拉取。使用脚本统一一次性拉取:

1
2
3
mkdir scripts
vi k8s_base_image.sh

脚本具体内容: https://gitee.com/lomospace/k8s/blob/master/scripts/k8s_base_image.sh

执行脚本:

1
2
cd scripts
. k8s_base_image.sh # 或 source k8s_base_image.sh

image

通过 kubeadm config images pull 确认镜像拉取成功:

image

初始化 kubeadm(master)

1
kubeadm init --kubernetes-version=v1.16.2 --apiserver-advertise-address=192.168.56.104 --pod-network-cidr=192.168.0.0/16

报错了:
image

解决方案: 修改 虚拟机 CPU,重启后重新执行kubeadm init操作即可.

init 常用主要参数:

  • –kubernetes-version: 指定Kubenetes版本,如果不指定该参数,会从google网站下载最新的版本信息
  • –pod-network-cidr: 指定pod网络的IP地址范围,它的值取决于你在下一步选择的哪个网络网络插件
  • –apiserver-advertise-address: 指定master服务发布的Ip地址,如果不指定,则会自动检测网络接口,通常是内网IP。
  • –feature-gates=CoreDNS: 是否使用CoreDNS,值为true/false,CoreDNS插件在1.10中提升到了Beta阶段,最终会成为Kubernetes的缺省选项

Init 过程日志输出:

image

默认情况下, 生成的 token 有效期为 24h

继续:

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

该步骤必须执行, 否则会提示: The connection to the server localhost:8080 was refused - did you specify the right host or port?

查看 pods 状态

kubectl get pods -n kube-system

image

Node 加入

在上面 init 最后, 输出了形如: kubeadm join 192.168.56.104:6443 --token ........ , 复制,然后在 node 机器上执行即可.

查看所有 nodes:

kubectl get nodes

此时发现均为 NotReady 状态, 因为 master 节点还未安装网络插件.

安装网络插件(master)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

部署完成后, 过一会即可看到它自动刷新后的结果:

image

注意: 集群中的master和node节点的hostname不能重复,否则会加入集群失败!!!

相关操作命令

删除集群中的 node:

kubectl delete node node3

重新创建 token:

kubeadm token create

查看 token:

Kubeadm token list

查找 hash:

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^.* //‘


    
        
        版权声明:
        本文由Lomo创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,
        转载请注明作者及出处,本文作者为Lomo,本文标题为k8s-config.
    
    


 Leave a message ^_^:

Contents
  1. 1. K8S 学习笔记之–集群配置
    1. 1.1. 安装初始化工具
    2. 1.2. 初始化 kubeadm(master)
    3. 1.3. Node 加入
    4. 1.4. 安装网络插件(master)
    5. 1.5. 相关操作命令