Cloud Native应用交付

  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 In AI Agent Arch
    • F5 AI Infrastructure Blueprint
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
Cloud Native Application Services: cnadn.net
  1. 首页
  2. 容器/k8s
  3. 正文

kubeadm快速部署k8s 1.16.2

2019年10月29日 9151点热度 2人点赞 0条评论

Warning: Array to string conversion in /home/wwwroot/myf5/wp-content/plugins/wpjam-basic/public/wpjam-utils.php on line 496

由于之前全手工安装的是1.10.6版本. 最近需要测试nginx的CRD,但是此CRD至少要v1.11以上版本。本着测试环境多一事不如少一事的原则。。。决定用kubeadm来个快速全新安装一套。

环境准备

1master,2nodes

172.16.10.210 k8s-master-v1-16.lab.f5se.io
172.16.10.211 k8s-node1-v1-16.lab.f5se.io
172.16.10.212 k8s-node2-v1-16.lab.f5se.io

所有节点准备工作

  • 替换yum repo为阿里镜像,k8s的repo也改成阿里云,这样安装起来能快点
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

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

yum clean all
yum makecache
yum -y update
  • 关firewlld,selinux,swapoff
systemctl disable firewalld
systemctl stop firewalld

setenforce 0
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
  • 调整系统参数
cat <  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
  • 增加hosts文件
172.16.10.210 k8s-master-v1-16.lab.f5se.io
172.16.10.211 k8s-node1-v1-16.lab.f5se.io
172.16.10.212 k8s-node2-v1-16.lab.f5se.io
  • 安装docker
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce-18.09.9-3.el7
systemctl enable docker
systemctl start docker
  • 配置docker启动daemon.json文件

注:kubeadm在安装的时候会预先检测系统是否是使用systemd作为cgroup的驱动,因此需要修改daemon.json。且由于我的系统存储驱动不是overlay2,而是 devicemapper ,所以不能完全参考官方 https://kubernetes.io/docs/setup/production-environment/container-runtimes/

修改完毕后,重新启动docker :systemctl restart docker

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
  • 安装kubeadm,以及kubelet工具
yum install -y kubeadm-1.16.2 kubelet-1.16.2
  • 预下载被QIANG的镜像,否则安装会无法成功

master节点运行:

#!/bin/bash

## 使用如下脚本下载国内镜像,并修改tag为google的tag
set -e

KUBE_VERSION=v1.16.2
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.15-0
CORE_DNS_VERSION=1.6.2

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done
#!/bin/bash

set -e

FLANNEL_VERSION=v0.11.0

# 在这里修改源
QUAY_URL=quay.io/coreos
QINIU_URL=quay-mirror.qiniu.com/coreos

images=(flannel:${FLANNEL_VERSION}-amd64
flannel:${FLANNEL_VERSION}-arm64
flannel:${FLANNEL_VERSION}-arm
flannel:${FLANNEL_VERSION}-ppc64le
flannel:${FLANNEL_VERSION}-s390x)

for imageName in ${images[@]} ; do
  docker pull $QINIU_URL/$imageName
  docker tag  $QINIU_URL/$imageName $QUAY_URL/$imageName
  docker rmi $QINIU_URL/$imageName
done

node节点运行

#!/bin/bash
set -e

KUBE_VERSION=v1.16.2
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.15-0
CORE_DNS_VERSION=1.6.2

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done
#!/bin/bash

set -e

FLANNEL_VERSION=v0.11.0

QUAY_URL=quay.io/coreos
QINIU_URL=quay-mirror.qiniu.com/coreos

images=(flannel:${FLANNEL_VERSION}-amd64
flannel:${FLANNEL_VERSION}-arm64
flannel:${FLANNEL_VERSION}-arm
flannel:${FLANNEL_VERSION}-ppc64le
flannel:${FLANNEL_VERSION}-s390x)

for imageName in ${images[@]} ; do
  docker pull $QINIU_URL/$imageName
  docker tag  $QINIU_URL/$imageName $QUAY_URL/$imageName
  docker rmi $QINIU_URL/$imageName
done

主节点正式安装

如果以下命令执行过程中有错,可ctrl-c终止,让后执行kubeadm reset来重新初始化后再次执行

kubeadm init  --apiserver-advertise-address 172.16.10.210  --kubernetes-version=v1.16.2  --pod-network-cidr=10.244.0.0/16

如无异常,安装完毕后,系统会提示类似如下信息

Your Kubernetes control-plane has initialized successfully!
 To start using your cluster, you need to run the following as a regular user:
 mkdir -p $HOME/.kube
   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
   sudo chown $(id -u):$(id -g) $HOME/.kube/config
 You should now deploy a pod network to the cluster.
 Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
   https://kubernetes.io/docs/concepts/cluster-administration/addons/
 Then you can join any number of worker nodes by running the following on each as root:
 kubeadm join 172.16.10.210:6443 --token dov90j.fzvwtb2o353tsy2p \
     --discovery-token-ca-cert-hash sha256:2faa5272facb2655af0f115e45fddc5bc7e097997bf0b0e8b4c73bf2d5680e7b 

参考以上提示执行相关kube config文件处理,以便可以执行kubectl命令。并安装一种网络组件,测试中安装flannel

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl create -f kube-flannel.yml

kubectl get pod --all-namespaces 确认pod运行

node节点安装

node节点运行以下类似命令,具体命令从master安装完毕后的输出中拷贝

kubeadm join 172.16.10.210:6443 --token dov90j.fzvwtb2o353tsy2p \
    --discovery-token-ca-cert-hash sha256:2faa5272facb2655af0f115e45fddc5bc7e097997bf0b0e8b4c73bf2d5680e7b 

确认各节点及pod运行正常

[root@k8s-master-v1-16 ~]# kubectl get node
NAME                           STATUS   ROLES    AGE    VERSION
k8s-master-v1-16.lab.f5se.io   Ready    master   171m   v1.16.2
k8s-node1-v1-16.lab.f5se.io    Ready       127m   v1.16.2
k8s-node2-v1-16.lab.f5se.io    Ready       45m    v1.16.2
[root@k8s-master-v1-16 ~]# kubectl get pod --all-namespaces
NAMESPACE     NAME                                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-5644d7b6d9-fgtdl                               1/1     Running   0          171m
kube-system   coredns-5644d7b6d9-xj5d4                               1/1     Running   0          171m
kube-system   etcd-k8s-master-v1-16.lab.f5se.io                      1/1     Running   0          170m
kube-system   kube-apiserver-k8s-master-v1-16.lab.f5se.io            1/1     Running   0          170m
kube-system   kube-controller-manager-k8s-master-v1-16.lab.f5se.io   1/1     Running   0          170m
kube-system   kube-flannel-ds-amd64-fbcw5                            1/1     Running   0          139m
kube-system   kube-flannel-ds-amd64-mzpmb                            1/1     Running   0          45m
kube-system   kube-flannel-ds-amd64-tdmk6                            1/1     Running   0          127m
kube-system   kube-proxy-7svd7                                       1/1     Running   0          127m
kube-system   kube-proxy-cs2fb                                       1/1     Running   0          45m
kube-system   kube-proxy-jtnrn                                       1/1     Running   0          171m
kube-system   kube-scheduler-k8s-master-v1-16.lab.f5se.io            1/1     Running   0          170m

 

Array
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 1.16.2 flannel k8s kubeadm安装
最后更新:2020年08月13日

纳米

linjing.io

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

页面AI聊天助手
文章目录
  • 环境准备
  • 所有节点准备工作
  • 主节点正式安装
  • node节点安装
  • 确认各节点及pod运行正常

纳米

linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
TOGAF: ID 152743
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 归档
    分类
    • AI
    • Automation
    • Avi Networks
    • Cisco ACI
    • CISCO资源
    • F5 with ELK
    • F5-Tech tips
    • F5技术
    • Juniper
    • Linux
    • NGINX
    • SDN
    • ServiceMesh
    • WEB编程
    • WINDOWS相关
    • 业界文章
    • 交换机技术
    • 化云为雨/Openstack
    • 协议原理
    • 容器/k8s
    • 我的工作
    • 我的生活
    • 网站技术
    • 路由器技术
    • 项目案例
    标签聚合
    nginx gtm api irule openstack docker bigip network k8s DNS F5 neutron envoy flannel istio
    最近评论
    纳米 发布于 1 天前(11月08日) 这文件是独立密码,需要的联系
    纳米 发布于 1 天前(11月08日) 这几个是独立密码。需要的话联系。
    Abeny 发布于 9 个月前(02月20日) Very good!
    李成才 发布于 1 年前(06月03日) 大佬公众号里查的下载密码都不对呢
    李成才 发布于 2 年前(04月09日) 大佬,F5排错培训材料,ssl培训这几个新的材料下载密码不对呢,已关注公众号获取下载密码
    浏览次数
    • Downloads - 197,719 views
    • 联系我 - 138,930 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 129,160 views
    • Github - 116,004 views
    • Sniffer Pro 4 70 530抓包软件 中文版+视频教程 - 93,144 views
    • F5常见log日志解释 - 91,156 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 91,103 views
    • 从传统ADC迈向CLOUD NATIVE ADC - 下载 - 89,211 views
    • 关于本站 - 77,944 views
    • F5利用Elastic stack(ELK)进行应用数据挖掘系列(2)-DNS - 65,566 views
    链接表
    • F5SE创新
    • Jimmy Song‘s Blog
    • SDNlab
    • Service Mesh社区
    • 三斗室
    • 个人profile
    • 云原生社区

    COPYRIGHT © 2023 Cloud Native 应用交付. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    京ICP备14048088号-1

    京公网安备 11010502041506号