docker-kubeadm安装
注: docker系列都是以前自己学习搭建时的笔记,难免有疏漏之处,仅做参考
docker集群管理 (主机先做免密登录,方便文件copy)
master: 192.168.138.111
slave1: 192.168.138.112
slave2: 192.168.138.113
#正文部分
所有主机(master,slave1,slave2)执行
#时间同步
systemctl start chronyd.service
systemctl enable chronyd.service
关闭swapoff
swapoff -a
#配置yum源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker.repo
cat << EOF >/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
EOF
导入gpgcheck包
wget -q https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
wget -q https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm –import yum-key.gpg
rpm –import rpm-package-key.gpg
scp rpm-package-key.gpg slave1:/root
scp rpm-package-key.gpg slave2:/root
scp yum-key.gpg slave1:/root
scp yum-key.gpg slave2:/root
scp /etc/yum.repos.d/kubernetes.repo slave1:/etc/yum.repos.d/
scp /etc/yum.repos.d/kubernetes.repo slave2:/etc/yum.repos.d/
master主机
查看docker kubeadm kubelet kubectl 版本
yum list kubelet kubeadm kubectl –showduplicates|sort -r
yum list docker-ce –showduplicates | sort -r
安装docker-ce kubelet kubeadm kubectl
yum install docker-ce kubeadm-1.23.3 kubectl-1.23.3 kubelet-1.23.3 -y
rpm -ql kubelet
设置开机自启
systemctl enable kubelet
systemctl enable docker
systemctl start docker
把以下功能打开,否则可能会报错
echo “1”>/proc/sys/net/bridge/bridge-nf-call-iptables
echo “1”>/proc/sys/net/bridge/bridge-nf-call-ip6tables
echo “1”> /proc/sys/net/ipv4/ip_forward
#执行
kubeadm config images list
#输出
k8s.gcr.io/kube-apiserver:v1.23.3
k8s.gcr.io/kube-controller-manager:v1.23.3
k8s.gcr.io/kube-scheduler:v1.23.3
k8s.gcr.io/kube-proxy:v1.23.3
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6
pull镜像
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.3
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.3
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.3
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.23.3
docker pull registry.aliyuncs.com/google_containers/pause:3.6
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.1-0
docker pull registry.aliyuncs.com/google_containers/coredns:v1.8.6
打标签
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.3 k8s.gcr.io/kube-apiserver:v1.23.3
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.3 k8s.gcr.io/kube-controller-manager:v1.23.3
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.3 k8s.gcr.io/kube-scheduler:v1.23.3
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.23.3 k8s.gcr.io/kube-proxy:v1.23.3
docker tag registry.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
docker tag registry.aliyuncs.com/google_containers/etcd:3.5.1-0 k8s.gcr.io/etcd:3.5.1-0
docker tag registry.aliyuncs.com/google_containers/coredns:v1.8.6 k8s.gcr.io/coredns/coredns:v1.8.6
删除旧镜像
docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.3
docker rmi registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.3
docker rmi registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.3
docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.23.3
docker rmi registry.aliyuncs.com/google_containers/pause:3.6
docker rmi registry.aliyuncs.com/google_containers/etcd:3.5.1-0
docker rmi registry.aliyuncs.com/google_containers/coredns:v1.8.6
关闭Swap选项
cat << EOF >/etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=”–fail-swap-on=false”
EOF
#执行初始化
kubeadm init –kubernetes-version=v1.23.3 –pod-network-cidr=10.244.0.0/16 –service-cidr=10.96.0.0/12 –token-ttl=0 –ignore-preflight-errors=Swap
1 | vi /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"] } |
查看K8S运行状态:
1 | kubectl get po -n kube-system |
若期望新增节点,则需要重新生成token,默认是24小时有效期,这里可以通过设置ttl=0为永久有效
1 | kubeadm token create --print-join-command --ttl=0 |
输出:
1 | kubeadm join 192.168.137.110:6443 --token q4ge2n.rnwke6l5wmtaglrj --discovery-token-ca-cert-hash sha256:b64218fa30ae1ca5f8f7e336f935fc7bf84d561a7e29521800b12d5fe34c6819 |
flannel 安装
docker pull quay.io/coreos/flannel:v0.15.1-amd64
创建集群 注意输出最后信息 子节点加入时需要
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
节点配置
rpm-gpg引入完成后开始安装所需包
rpm -import yum-key.gpg
rpm -import rpm-package-key.gpg
#安装所需包,kubelet不用立即启动,在加入k8s后就会启动
yum install docker-ce kubeadm-1.23.3 kubectl-1.23.3 kubelet-1.23.3 -y
systemctl enable docker kubelet
systemctl start docker
#设置
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 >/proc/sys/net/bridge/bridge-nf-call-iptables
关闭Swap选项
cat << EOF >/etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=”–fail-swap-on=false”
EOF
节点加入集群 注意master创建集群信息
kubeadm join 192.168.137.110:6443 –token ls7p8w.db58adnrufdxorjl –discovery-token-ca-cert-hash sha256:dac6495e40d745a50fa37e217355c0895c233e9b9e6a1535df243b4926d4c5a9 –ignore-preflight-errors=Swap
节点下载所需镜像
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.23.3
docker pull registry.aliyuncs.com/google_containers/pause:3.6
docker pull quay.io/coreos/flannel:v0.15.1-amd64
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.23.3 k8s.gcr.io/kube-proxy:v1.23.3
docker tag registry.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.23.3
docker rmi registry.aliyuncs.com/google_containers/pause:3.6
出现的问题:
1.The connection to the server localhost:8080 was refused - did you specify the right host or port?
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> /etc/profile
source /etc/profile