kubeadm安装kubernetes集群

 

 

# 所有主机:基本系统配置

# 关闭Selinux/firewalld
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
 
# 关闭交换分区
swapoff -a
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab
 
# 设置网桥包经IPTables,core文件生成路径
echo """
vm.swappiness = 0
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
""" > /etc/sysctl.conf
sysctl -p
 
# 同步时间
yum install -y ntpdate
ntpdate -u ntp.api.bz
 
# 升级内核
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm ;yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
 
# 检查默认内核版本是否大于4.14,否则请调整默认启动参数
grub2-editenv list
 
#重启以更换内核
reboot
 
# 确认内核版本后,开启IPVS
uname -a
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in \${ipvs_modules}; do
 /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
 if [ $? -eq 0 ]; then
 /sbin/modprobe \${kernel_module}
 fi
done
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

  

 

配置docker

# 所有主机:安装配置docker

# 安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
 
yum makecache fast
yum install -y docker-ce
 
# 编辑systemctl的Docker启动文件和配置文件
sed -i "13i ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT" /usr/lib/systemd/system/docker.service
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://ftoplrr2.mirror.aliyuncs.com"]
}
EOF
 
# 启动docker
systemctl daemon-reload
systemctl enable docker
systemctl start docker

  

  

# 所有主机配置kubenetes仓库
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes 
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ 
gpgcheck=0 
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 
enabled=1 
EOF

#master安装指定版本的kubeadm yum install -y kubelet-1.14.0-0.x86_64 kubectl-1.14.0-0.x86_64 kubeadm-1.14.0-0.x86_64 将所有插件设置开机自启动,特别是kubelet
systemctl start kubelet
systemctl enable kubelet
#忽略Swap echo 'KUBELET_EXTRA_ARGS="--fail-swap-on=false"' > /etc/sysconfig/kubelet

  

  

使用python脚本下载镜像并改标签

#encoding=utf8
S_registry="mirrorgooglecontainers/"
D_registry="k8s.gcr.io/"
Z_registry="coredns/"


images_list = [
'kube-apiserver:v1.14.0',
'kube-controller-manager:v1.14.0',
'kube-scheduler:v1.14.0',
'kube-proxy:v1.14.0',
'pause:3.1',
'etcd:3.3.10',
'coredns:1.3.1'
]
import os

def PullImage(registry,images):
    print('一共%s个镜像'%(len(images)))
    index=1
    for image in images:
        print('开始下载第%s个镜像%s'%(index,image))
        if image == "coredns:1.3.1":
            cmd = "docker pull " + Z_registry + image
        else:
            cmd = "docker pull " + registry + image
        os.system(cmd)
        print('done!!!')
        index += 1

def DelImage(registry,images):
    for image in images:
        if image == "coredns:1.3.1":
            cmd = "docker rmi " + Z_registry + image
        else:
            cmd = "docker rmi " + registry+image
        os.system(cmd)
        print("已删除%s系列镜像"%(registry))


def TagImage(sregistry,dregistry,images):
    for image in images:
        if image == "coredns:1.3.1":
            cmd = "docker tag " + Z_registry+image + " "  + dregistry+image
        else:
            cmd = "docker tag " + sregistry+image + " " + dregistry+image
        os.system(cmd)
        print("done!!")


if __name__ == '__main__':
    PullImage(S_registry,images_list)
    TagImage(S_registry,D_registry,images_list)
    DelImage(S_registry,images_list)

  

初始化master

# 初始化
kubeadm  init --kubernetes-version=v1.14.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=all

  

master初始化后的输出最好保存到一个文件,里面的token信息下次node节点加入需要用

node节点加入(master节点初始化后的输出)

kubeadm join 192.168.4.49:6443 --token vlk29e.1c8flbqssi6ryz7a \
    --discovery-token-ca-cert-hash sha256:ae4e643ea39a0e092da1a9b327907eda06cb97ca395c467f8b430a9183d5fed9

  

初始化kubectl

# mkdir ~/.kube 
# cp /etc/kubernetes/admin.conf ~/.kube/config
测试: 
# kubectl get componentstatus 

  

# 初始化完成后查看集群状态
[root@k8s001 ~]# kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok                  
controller-manager   Healthy   ok                  
etcd-0               Healthy   {"health":"true"}   


# 查看各节点状态
[root@k8s001 ~]# kubectl get nodes
NAME                STATUS     ROLES    AGE   VERSION
k8s001.godufo.com   NotReady   master   58m   v1.14.0

  

  

 部署flaanel

https://github.com/coreos/flannel

 

#自动获取在线的清单,并下载清单,部署启动flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

#***
kubectl get pods -n kube-system


#
kubectl get ns

  

node节点

#

  

  

转载于:https://www.cnblogs.com/sonfer/p/10678734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值