K8S-3-Kubeadm 部署安装

kube-proxy开启ipvs的前置条件


modprobe br_netfilter

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

安装 Docker 软件

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum update -y && yum install -y docker-ce

reboot

设置开机默认启动

systemctl start docker
systemctl enable docker

## 创建 /etc/docker 目录
mkdir /etc/docker

# 配置 daemon.
cat > /etc/docker/daemon.json <<EOF 
{
    "exec-opts": ["native.cgroupdriver=systemd"], 
    "log-driver": "json-file", 
    "log-opts": { "max-size": "100m" } 
}
EOF 

mkdir -p /etc/systemd/system/docker.service.d 

# 重启docker服务 
systemctl daemon-reload && systemctl restart docker && systemctl enable docker

安装 Kubeadm (主从配置)

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

yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1 

systemctl enable kubelet.service

上传kubeadm组件

把这七个镜像组件上传

registry.aliyuncs.com/google_containers/kube-proxy                v1.18.0             43940c34f24f        6 weeks ago         117MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.18.0             d3e55153f52f        6 weeks ago         162MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.18.0             a31f78c7c8ce        6 weeks ago         95.3MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.18.0             74060cea7f70        6 weeks ago         173MB
registry.aliyuncs.com/google_containers/pause                     3.2                 80d28bedfe5d        2 months ago        683kB
registry.aliyuncs.com/google_containers/coredns                   1.6.7               67da37a9a360        3 months ago        43.8MB
registry.aliyuncs.com/google_containers/etcd                      3.4.3-0             303ce5db0e90        6 months ago        288MB

编写一个sh去加载images

vim load-images.sh
#!/bin/bash

ls /root/kubeadm-basic.images > /tmp/images-list.txt

cd /root/kubeadm-basic.images

for i in $(cat /tmp/images-list.txt)
do
	docker load -i $i
done

rm -rf /tmp/images-list.txt

初始化主节点

kubeadm config print init-defaults > kubeadm-config.yaml 

kubeadm-config.yaml内容
需要修改的参数:advertiseAddress,imageRepository,podSubnet

apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.0.151
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: k8s-master01
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.18.0
networking:
  dnsDomain: cluster.local
  podSubnet: "10.244.0.0/16" 
  serviceSubnet: 10.96.0.0/12
scheduler: {}

初始化

kubeadm init  --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log

加载成功显示

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.0.151:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:28ff40dfec65ade5e2cc11145f1978dff852ac586392f607ee98b15fc51d1150 

成功后加入环境变量:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装网络插件

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

install-k8s目录结构

├── core
│   ├── kubeadm-config.yaml
│   └── kubeadm-init.log
└── plugin
    └── flannel
        └── kube-flannel.yml

常用查看命令

kubectl get node
kubectl get pod -n kube-system -o wide
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值