#1)关闭CentOS7自带的防火墙服务
systemctl disable firewalld
systemctl stop firewalld

swapoff  -a     ##虚拟机要关闭交换内存。

#2)修改主机名

hostnamectl set-hostname master

hostnamectl set-hostname node1

hostnamectl set-hostname node2

#3)修改/etc/hosts

cat >> /etc/hosts <<EOF

172.16.110.111 master

172.16.110.112 node1

172.16.110.114 node2

EOF

#4)修改时间:

yum -y install ntpdate

ntpdate ntp1.aliyun.com

#5)master上操作安装k8s和docker:

Yum –y install wget

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

cat
>>/etc/yum.repos.d/kubernetes.repo <<EOF

[kubernetes]

name=kubernetes Repo

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

enabled=1

EOF

wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

rpm --import rpm-package-key.gpg

yum
-y install docker-ce kubelet kubeadm kubectl

#6)更改环境变量,启动docker:

cat  >>
/usr/lib/systemd/system/docker.service <<EOF

Environment="HTTPS_PROXY=http://www.ik8s.io:10080"

Environment="NO_PROXY=127.0.0.0/8,172.0.0.0/16"

EOF

systemctl
daemon-reload

systemctl
start docker

systemctl
enable docker

systemctl
enable kubelet

#7)#设置下面的参数(设为0即要求iptables不对bridge的数据进行处理):

cat
>> /etc/sysctl.conf <<EOF

net.ipv4.ip_forward=1

net.bridge.bridge-nf-call-ip6tables
= 1

net.bridge.bridge-nf-call-iptables
= 1

net.bridge.bridge-nf-call-arptables
= 1

EOF

##如果net.bridge.bridge-nf-call-iptables=1,也就意味着二层的网桥在转发包时也会被#iptables的FORWARD规则所过滤,这样就会出现L3层的iptables rules去过滤L2的帧的问题所以涉及一些dnat, snat就不###生效了,举个例子,具体表现在openstack中就是metadata服#务不好使了。这个说法可参见https://bugzilla.redhat.com/show_bug.cgi?id=512206

rpm
-ql kubelet >>/opt/k8s_master_install.log

#8)初始化(注意要记录好最后的token等):

kubeadm config
images pull      ##必须先拉镜像。

sed
-i
"s@KUBELET_EXTRA_ARGS=@KUBELET_EXTRA_ARGS="--fail-swap-on=false"@g"
/etc/sysconfig/kubelet

kubeadm init --kubernetes-version=v1.16.1
--apiserver-advertise-address=172.16.110.111 --pod-network-cidr=10.244.0.0/16
--service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

#以下是最后的输出结果:

#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.110.111:6443 --token
gmxuck.nybmu19vbe3j7vm8 \

--discovery-token-ca-cert-hash
sha256:99a8e071df1a498bcf0797812640d58edf08fb6a0c6f8f496641021b27d0dbf4

#############################################################################

##查看端口情况,以下是按最后的输出要求操作

ss -ntl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

kubectl
get cs

kubectl cluster-info

##添加环境变量:

echo "export
KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

source 
~/.bash_profile

##失败则要用kubeadm reset重置

# 9)部署网络插件flannel

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

curl
-sSL
"https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true"
| kubectl create –f –

##检查:

kubectl
get pods -n kube-system

kubectl get 
nodes

##10)配置文件传到node1node2(建议先安装好node1\2,同步安装也行)

scp /usr/lib/systemd/system/docker.service
node1:/usr/lib/systemd/system/docker.service

scp
/etc/sysconfig/kubelet node1:/etc/sysconfig/

#11)nodes操作完成后检查:

kubectl
get pods -n kube-system -o wide

kubectl
get nodes

#12)其它维护命令:

kubadm token list       systemctl restart kubelet   #重启kubelet

kubectl get
componentstatuses //查看node节点组件状态

kubectl get svc -n
kube-system //查看应用

kubectl cluster-info
//查看集群信息

kubectl describe
--namespace kube-system service kubernetes-dashboard //详细服务信息

kubectl apply -f
kube-apiserver.yaml   //更新kube-apiserver容器

kubectl delete -f
/root/k8s/k8s_images/kubernetes-dashboard.yaml //删除应用

kubectl  delete
service example-server //删除服务

systemctl  start
kube-apiserver.service //启动服务。

kubectl get
deployment --all-namespaces //启动的应用

kubectl get pod
 -o wide  --all-namespaces //查看pod上跑哪些服务

kubectl get pod -o
wide -n kube-system //查看应用在哪个node上

kubectl describe pod
--namespace=kube-system //查看pod上活动信息

kubectl describe
depoly kubernetes-dashboard -n kube-system

kubectl get depoly
kubernetes-dashboard -n kube-system -o yaml

kubectl get service
kubernetes-dashboard -n kube-system //查看应用

kubectl delete -f
kubernetes-dashboard.yaml //删除应用

kubectl get events //查看事件

kubectl get
rc/kubectl get svc

kubectl get namespace
//获取namespace信息

kubectl delete node 节点名 //删除节点

k8s搭建实操记录一(master)的更多相关文章

  1. k8s搭建实操记录干货二(node)

    #注:172.16.110.111为master,172.16.110.112\114为node1\node2(kubeadm join部分要等master完成后手工操作,其它可执行本脚本一键安装) ...

  2. SFUD+FAL+EasyFlash典型场景需求分析,并记一次实操记录

    SFUD+FAL+EasyFlash典型场景需求分析:用整个flash存储数据,上千条数据,读取得时候用easyflash很慢,估计要检索整个flash太慢了. 改进方法:分区检索. 1存数据时,根据 ...

  3. Mysql集群搭建-实操

    集群安装--准备工作 官网地址 https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html 一.环境 ...

  4. 分布式文件系统FastDFS搭建实操

    转载---------佳先森--- 一.什么是文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节 ...

  5. Hadoop1.2.1 全然分布式集群搭建实操笔记

    前期准备工作: 1.改动Linux主机名:/etc/hostname                         ubuntu系统:vi /etc/hostname                 ...

  6. 【Linux】php7.2.8 + xdebug + composer + php代码覆盖率 + jenkins配置 (实操记录,亲测可用)

        [一.linux安装php 7.2.8] 1.wget http://nginx.org/download/nginx-1.9.9.tar.gz              # nginx可不安 ...

  7. Mysql MHA(GTID)配置(实操)

    实现环境 centos6.7 MYSQL5.6.36 主:192.168.1.191 从1:192.168.1.145 从2:192.168.1.146 监测:放在从2上 192.168.1.146 ...

  8. ubuntu 18.04 搭建flask服务器(大合集,个人实操)

    ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ...

  9. 【强烈推荐,超详细,实操零失误】node.js安装 + npm安装教程 + Vue开发环境搭建

    node.js安装 + npm安装教程 + Vue开发环境搭建 [强烈推荐,超详细,实操零失误] 原博客园地址:https://www.cnblogs.com/goldlong/p/8027997.h ...

随机推荐

  1. 2019-2020-1 20199326《Linux内核原理与分析》第四周作业

    第四周学习内容 庖丁解牛Linux内核分析第三章:MenuOS的构造 Linux内核分析实验三 学到的一些知识 操作系统两大宝剑:1.中断上下文的切换--保存现场和恢复现场 2.进程上下文的切换 Li ...

  2. java中Runnable和Callable的区别

    文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...

  3. SpringBoot内置生命周期事件详解 SpringBoot源码(十)

    SpringBoot中文注释项目Github地址: https://github.com/yuanmabiji/spring-boot-2.1.0.RELEASE 本篇接 SpringBoot事件监听 ...

  4. 怎样实现App安装来源追踪

    众所周知,国内的应用商店存在一定的限制,开发者很难有效监测到App安装来源的精准数据.但在实际推广中,广告效果.用户行为.付费统计.邀请关系等不同渠道的指标却是衡量渠道价值的关键,对App的运营推广和 ...

  5. 比特大陆发布终端 AI 芯片 端云联手聚焦安防

    雷帝网 乐天 10月17日报道 比特大陆今日正式发布终端人工智能芯片BM1880,一同发布的还有基于云端人工智能芯片 BM1682 的算丰智能服务器 SA3.嵌入式AI迷你机 SE3.3D 人脸识别智 ...

  6. 在CentOS 7中安装配置JDK8

    为什么80%的码农都做不了架构师?>>>   ###说明 参考博客:http://blog.csdn.net/czmchen/article/details/41047187 系统环 ...

  7. falsk-web 表单

    web 表单 回顾 在上一章节中,我们定义了一个简单的模板,使用占位符来虚拟了暂未实现的部分,比如用户以及文章等. 在本章我们将要讲述应用程序的特性之一–表单,我们将会详细讨论如何使用 web 表单. ...

  8. Codeforce 239 B. Easy Tape Programming

    There is a programming language in which every program is a non-empty sequence of "<" a ...

  9. unittest 中的方法调用时报错 ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTest

    1.调用unittest中的方法时报错: ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTe ...

  10. 面试之JS深拷贝的实现

    在面试中你是否遇到过如下场景: Q:小朋友,你是否了解如何拷贝一个对象? R:此时,机智的你可能会想到 Object.assign({}, obj); Q:那如何深拷贝一个对象呢? R:机智的你 JS ...