前言
imageKubernetes 学习笔记,记录下来!💻🚀
准备三台CentOS 7.0+的机器,更改Hostname为Master、node-01、node-02:
节点 | IP地址 |
---|---|
Master | 10.211.55.7 |
node-01 | 10.211.55.8 |
node-02 | 10.211.55.9 |
我这里新创建了三台虚拟机:
image
配置所有机器的/etc/hosts文件:
vi /etc/hosts
添加如下这三行后保存退出。
10.211.55.7 Master
10.211.55.8 node-01
10.211.55.9 node-02
image
注意:以下命令,非root用户需要sudo权限带sudo 执行相关命令。
root用户去掉sudo执行。
关闭防火墙
1、关闭防火墙:sudo systemctl stop firewalld.service
2、关闭开机启动:sudo systemctl disable firewalld.service
查看防火墙状态:firewall-cmd --state
查看是否开机启动:systemctl is-enabled firewalld.service
禁用SELINUX
sudo setenforce 0
sudo vi /etc/selinux/config
#SELINUX修改为disabled
SELINUX=disabled
关闭Swap交换分区
关闭系统的Swap命令如下:
swapoff -a
同时还需要修改/etc/fstab文件,注释掉SWAP的自动挂载,防止机子重启后swap启用。
使用命令:
vi /etc/fstab
注释swap这一行后保存退出。
# /dev/mapper/centos-swap swap swap defaults 0 0
确认swap已经关闭,使用命令:
free -m
swap输出为0则说明已经关闭。
image开始安装
yum -y install epel-release
image
然后升级到最新版本:
yum update
image
开始安装:(所有主机)
yum install -y etcd kubernetes-master ntp flannel
image
image
安装了etcd 3.3.11、flannel 0.7.1、kubernetes-master 1.5.2版本。
继续安装node:
yum install -y kubernetes-node ntp flannel docker
image
image
image
时间校对:(所有主机)
systemctl start ntpd
ntpdate ntp1.aliyun.com
hwclock -w
image
配置etcd服务器
- master:
编辑etcd.conf文件:
vim /etc/etcd/etcd.conf
修改为以下内容:
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="master"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.7:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.7:2379,http://10.211.55.7:4001"
ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
查看是否修改:
grep -v '^#' /etc/etcd/etcd.conf
image
启动etcd服务
systemctl start etcd
检查etcd集群状态
etcdctl cluster-health
image
检查etcd集群成员列表,这里只有一台
etcdctl member list
image
- node01:
编辑etcd.conf文件:
vim /etc/etcd/etcd.conf
修改为以下内容:
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="node02"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.8:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.8:2379,http://10.211.55.8:4001"
ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
启动etcd服务
systemctl start etcd
检查etcd集群状态
etcdctl cluster-health
检查etcd集群成员列表
etcdctl member list
- node02:
编辑etcd.conf文件:
vim /etc/etcd/etcd.conf
修改为以下内容:
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="node02"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.9:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.9:2379,http://10.211.55.9:4001"
ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
启动etcd服务
systemctl start etcd
检查etcd集群状态
etcdctl cluster-health
检查etcd集群成员列表
etcdctl member list
配置master服务器
1) 配置kube-apiserver配置文件
[root@Master ~]# grep -v '^#' /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://10.10.10.14:8080"
[root@Master ~]# grep -v '^#' /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://10.10.10.14:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission-control=AlwaysAdmit"
KUBE_API_ARGS=""
2) 配置kube-controller-manager配置文件
[root@Master ~]# grep -v '^#' /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS=""
3) 配置kube-scheduler配置文件
[root@Master ~]# grep -v '^#' /etc/kubernetes/scheduler
KUBE_SCHEDULER_ARGS="--address=0.0.0.0"
4) 启动服务
for i in kube-apiserver kube-controller-manager kube-scheduler;do systemctl restart $i; systemctl enable $i;done
配置node01节点服务器
1) 配置etcd
[root@Master ~]# etcdctl set /atomic.io/network/config '{"Network": "172.16.0.0/16"}'
{"Network": "172.16.0.0/16"}
2) 配置node1网络,本实例采用flannel方式来配置,如需其他方式,请参考Kubernetes官网。
[root@node01 ~]# grep -v '^#' /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://10.211.55.8:2379"
FLANNEL_ETCD_PREFIX="/atomic.io/network"
FLANNEL_OPTIONS=""
查看验证网络信息
[root@Master ~]# etcdctl get /atomic.io/network/config
{ "Network": "172.16.0.0/16" }
[root@Master ~]# etcdctl ls /atomic.io/network/subnets
/atomic.io/network/subnets/172.16.69.0-24
/atomic.io/network/subnets/172.16.6.0-24
[root@Master ~]# etcdctl get /atomic.io/network/subnets/172.16.6.0-24
{"PublicIP":"10.211.55.8"}
[root@Master ~]# etcdctl get /atomic.io/network/subnets/172.16.69.0-24
{"PublicIP":"10.211.55.9"}
3) 配置node1 kube-proxy
[root@node01 ~]# grep -v '^#' /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://10.10.10.14:8080"
[root@node01 ~]# grep -v '^#' /etc/kubernetes/proxy
KUBE_PROXY_ARGS="--bind=address=0.0.0.0"
4) 配置node1 kubelet
[root@node01 ~]# grep -v '^#' /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=127.0.0.1"
KUBELET_HOSTNAME="--hostname-override=10.10.10.15"
KUBELET_API_SERVER="--api-servers=http://10.10.10.14:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""
5) 启动node01服务
for i in flanneld kube-proxy kubelet docker;do systemctl restart $i;systemctl enable $i;systemctl status $i ;done
配置node02节点服务器
node2与node1配置基本一致,除下面一处例外
[root@node2 ~]# vi /etc/kubernetes/kubelet
KUBELET_HOSTNAME="--hostname-override=10.211.55.9"
查看节点
[root@Master ~]# kubectl get nodes
NAME STATUS AGE
10.211.55.8 Ready 18h
10.211.55.9 Ready 13h
最后
image今日寄语:
“有些路,走下去,会很累!不走,会后悔!️️”
桃李报春欢迎关注个人微信公众号:桃李报春 个人博客:http://leeyunt.top
网友评论