001、kubernetes笔记-1-基础环境部署

一、环境信息:

操作系统:ubuntu 18.04 server amd64

docker:docker 19.03.ce

kubernetes:v1.19

IP地址 主机名   角色
172.29.9.1 k8s-master k8s-master.ilinux.io k8s-api.ilinux.io master
172.29.9.11 k8s-node1.ilinux.io k8s-node1 node1
172.29.9.12 k8s-node2.ilinux.io k8s-node2 node2
172.29.9.13 k8s-node3.ilinux.io k8s-node3 node3

操作系统安装无需配置swap分区

二、操作系统基本设定

root@k8s-node1:~# timedatectl set-timezone "Asia/Shanghai"  #设置时区为上海

root@k8s-master:~# ufw disable && ufw status  #关闭防火墙并查看状态

root@k8s-master:~# swapoff -a   #关闭swap分区,永久关闭需要在fstab文件中注释swap开头的行

修改hosts文件:

  172.29.9.1 k8s-master.ilinux.io k8s-master k8s-api.ilinux.io
  172.29.9.11 k8s-node1.ilinux.io k8s-node1
  172.29.9.12 k8s-node2.ilinux.io k8s-node2
  172.29.9.13 k8s-node3.ilinux.io k8s-node3

三、配置并启动容器

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=5:19.03.0~3-0~ubuntu-bionic

root@k8s-master:~# docker version  #查看安装的docker-ce版本

root@k8s-master:~# vim /etc/docker/daemon.json  #配置docker国内加速

  }

    "registry-mirrors": ["https://registry.docker-cn.com"]

  }

root@k8s-master:~# systemctl daemon-reload  #重新加载daemon

root@k8s-master:~# systemctl start docker.service  #启动docker服务

root@k8s-master:~# systemctl enable docker  #加入开机启动

三、kubernetes 基本组件安装

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
root@k8s-master:~# apt install kubelet=1.19.0-00  安装kubelet,指定版本为1.19.0

root@k8s-master:~# apt install kubeadm=1.19.0-00  安装kubeadm,指定版本为1.19.0

root@k8s-master:~# apt install kubectl=1.19.0-00  安装kubectl,指定版本为1.19.0

以上操作全部需要在所有节点执行

四、kubeadm初始化

root@k8s-master:~# kubeadm init \
 --image-repository registry.aliyuncs.com/google_containers \
 --kubernetes-version v1.19.0 \
 --control-plane-endpoint k8s-api.ilinux.io \
 --apiserver-advertise-address 172.29.9.1 \
 --pod-network-cidr 10.244.0.0/16 \
 --token-ttl 0

出现如上提示表示初始化成功

参数说明:

  --image-repository:指定使用的镜像仓库,默认为gcr.io。

  --kubernetes-version:Kubernetes程序组件版本号,必须与安装的kubelet版本号相同。

  --control-plane-endpoint:控制平台固定访问端点,可以是IP或DNS名称,作为集群管理员与集群组件的kubeconfig配置文件的API server的访问地址。单控制平台部署时可不使用该选项。

  --pod-network-cidr:pod网络的地址范围,其值为CIDR,通常Flannel网络插件的默认值为10.244.0.0/16,ProjectCalico插件的默认值为192.168.0.0/16。

  --service-cidr:Service的网络地址范围,其值为CIDR格式的网络地址,默认为10.96.0.0/12。通常,仅Flannel一类的网络插件需要手动指定该地址。

  --apiserver-advertise-address:API Server通告给其他组件的IP地址,一般为Master节点用于集群内通信的IP地址,0.0.0.0表示节点上所有可用地址。

  --token-ttl:共享令牌的过期时长,默认为24小时,0表示永不过期,基于安全考虑需要将过期时间设置一具特定值。

五、配置命令行并加入node节点

1、配置命令行工具kubectl

root@k8s-master:~# mkdir -p $HOME/ .kube
root@k8s-master:~# cp -i /etc/kubernetes/admin.conf /root/.kube/config
root@k8s-master:~# chown root:root /root/.kube/config

root@k8s-master:~# kubectl get nodes  #获取节点相关状态信息

2、部署Flannel网络插件

root@k8s-master:~# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

等候几秒后再次使用kubelet get nodes命令查看,发现STATUS状态已经变为Ready了。

3、添加工作节点

root@k8s-node1:~#kubeadm join k8s-api.ilinux.io:6443 --token i4zjhe.ghw1val8gc9ik688 \
    --discovery-token-ca-cert-hash sha256:d67f112d9198dfe3a8dc8de9cafcb205b09a5a4bad660f8ffbac01a1883a7405

#该命令在初始化完成后的提示最后一条命令复制即可

4、root@k8s-master:~# kubectl get nodes  #再次使用命令查看发现node1已经加入节点

5、关于token

  默认token 24小时过期,后期可使用kubeadm token list查看还未过期的token。或使用kubeadm token create创建一个新的token

posted @   J_huaping  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示