K8S 安装部署(二)

安装Docker

  • 所有节点都必须安装
1. 配置Docker下载源
  • 由于不可抗力原因,建议配置Docker下载源为Aliyun
cat >/etc/yum.repos.d/docker.repo<<EOF
[docker-ce-edge]
name=Docker CE Edge - \$basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF
2. 安装Docker
yum install -y docker-ce

docker --version

# 启动docker并设置开机启动
systemctl start docker && systemctl enable docker
3. 配置Docker镜像下载源
  • 自行到Aliyun注册账户,开通容器镜像服务,目前个人免费,找到属于个人的加速源。地址
cat >> /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://xxx.aliyuncs.com"]
}
EOF
4. 重新加载
systemctl daemon-reload

systemctl restart docker

安装kubeadm、kubelet

1. 设置K8S安装源
  • 设置K8S安装源为Aliyun

  • 所有实例都必须安装

    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    

2. 安装kubeadm,kubelet和kubectl
  • 由于K8S社区更新速度很快,差不多按照季度/半年更新,所以安装尽量指定版本
  • 所有阶段都必须安装
# 安装kubelet、kubeadm、kubectl
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

# 设置开机启动
systemctl enable kubelet

3. 初始化 K8S Master
  • 只需要在Master节点上执行
kubeadm init --apiserver-advertise-address=‘master ip 地址’ --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12  --pod-network-cidr=10.244.0.0/16
  • 该步会拉取很多Docker镜像,速度有时会很慢,耐心等待,可以通过命令查看docker images

  • 当出现下面图片情况,表示K8S 初始化成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zmr8pAvY-1622484235749)(C:\Users\18380\AppData\Roaming\Typora\typora-user-images\image-20210601011143931.png)]

  • 使用kubectl工具

    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    
  • 查看节点运行情况

    kubectl get nodes
    

    在这里插入图片描述


4. 初始化 K8S Node
  • 将 Node 节点加入到 Master,分别在两台Node节点上执行上方截图中圈中的命令

    • 【每个人初始化后,Master输出信息都不一致,需要复制自己Master节点生成的】

    • 【示例】:分别在两台Node执行

      kubeadm join 192.168.240.161:6443 --token 6afmzu.xhvkqtkp22im3467     --discovery-token-ca-cert-hash sha256:f6bf3ff5f4c635b45d3d00418bdbd2e034e3ff6f5abab1d3e07659cc82b96d32
      

5. 查看集群
  • 查看集群状态【Master执行】

    kubectl get nodes
    
    • 此时,应该有三台K8S服务,一台master,两台node,状态均为NotReady
  • 设置Token有效期【Master执行】

    kubeadm token create --print-join-command
    

6. 部署CNI网络插件
  • 由于Master和Node之间需要进行网络连通,需要配置CNI网络

  • 【Master节点执行】


  • 下载网络插件并添加到K8S中

    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  • 查看集群节点状况

    kubectl get pods -n kube-system
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z3nI45EZ-1622484235751)(C:\Users\18380\AppData\Roaming\Typora\typora-user-images\image-20210601012839123.png)]

    kubectl get nodes
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EUXHtkj6-1622484235752)(C:\Users\18380\AppData\Roaming\Typora\typora-user-images\image-20210601012927125.png)]


  • 【注】:该步骤经常会由于网络原因导致失败,具体参照下方文档解决

    https://blog.csdn.net/zyl974611232/article/details/107518192
    

K8S 集群测试

  • 使用Nginx进行K8S集群测试,K8S通过Docker拉取镜像并启动

  • 【Master 执行】


  • 下载nginx

    kubectl create deployment nginx --image=nginxkubectl get pod
    

    在这里插入图片描述

    • 刚开始,状态可能为:ContainerCreating,表示Docker正在拉取Nginx镜像,稍等即可

  • 暴露Nginx端口

    • 上述步骤虽然已经将Nginx安装成功,但是外界是访问不到,需要将K8S集群内部Nginx端口暴露出去
    kubectl expose deployment nginx --port=80 --type=NodePortkubectl get pod,svc
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nm8EKuGJ-1622484235755)(C:\Users\18380\AppData\Roaming\Typora\typora-user-images\image-20210601013647179.png)]

    • 如图中所示:30629即Nginx对外暴露端口
    • 宿主机浏览器访问MasterIp:30629,此时会发现已经启动成功,有Nginx初始化界面,表示K8S安装成功

K8S 常用命令

  • 获取Pod

    # 简略信息
    kubectl get pod
    # 详细信息
    kubectl get pod -o wide
    
  • 获取Node

    # 简略信息
    kubectl get node
    # 详细信息
    kubectl get node -o wide
    
  • 删除Pod,deployment,service

    • 删除之前,首先要获取Pod,deployment信息
    • 获取信息之后,在进行删除,先删除deployment,再删除pod,否则可能出现pod删除后无限重启情况
    kubectl get pod
    kubectl get deployment
    kubectl get service
    
    kubectl delete pod 'podName'
    kubectl delete deployment 'deploymentName'
    kubectl delete service 'serviceName'
    
  • 查看详情信息

    kubectl describe pod 'podName'
    kubectl describe deployment 'deploymentName'
    

K8S 安装问题

1. 问题一
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
  • 【问题】:若首次安装K8S出现错误,二次安装时,需要重新初始化K8S-Master配置

  • 【解决】:参照 [初始化 K8S Master 章节],重新执行下列命令

    rm -rf $HOME/.kube
    
    mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
    
2. 问题二
error execution phase preflight: [preflight] Some fatal errors occurred:	[ERROR Swap]: running with swap on is not supported. Please disable swap
  • 【问题】:未关闭SWAP

  • 【解决】

    # 关闭swap
    swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值