kubeadm开快速的搭建一个k8s集群
所有节点安装kubeadm,kubelet和kubectl //定义kubernetes源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=所有节点安装docker yum install -y yum-utils device-mapper-persistent-data lvm
kubeadm开快速的搭建一个k8s集群
二进制适合大集群,50台以上主机
kubeadm更适合中小企业的业务集群。
master节点 20.0.0.92 docker kubelet kubeadm kubectl flannel
node1 20.0.0. 94 docker kubelet kubeadm kubectl flanne
node2 20.0.0.03 docker kubelet kubeadm kubectl flanne
harbor 20.0.0.95 docker docker-compose harbor
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/enforcing/disabled/' /etc/selinux/config iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X swapoff -a
hostnamectl set-hostname master01 hostnamectl set-hostname node01 hostnamectl set-hostname node02
sysctl --system
所有节点安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.
所有节点安装kubeadm,kubelet和kubectl //定义kubernetes源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=kubernetes-yum-repos-kubernetes-el7-x86_64安装包下载_开源镜像站-阿里云 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
yum install -y kubelet-1.20.15 kubeadm-1.20.15 kubectl-1.20.15 systemctl enable kubelet.service
kudeadm config images list --kubernetes-version 1.20.15
pause:特殊的pod
pause:会在节点上创建一个网络命名空间,其他容器可以加入这个网络命名空间
pod里面的容器可能使用不同的代码和架构代码,可以在一个网络空间里面实现通信,协调这个命名里面的资源(实现pod内容器兼容性)
kubeadm安装的k8s组件都是以pod的形式运行在kube-system这个命名空间当中
kubeketnode管理器可以进行系统控制
master 节点上传 v1.20.15.zip 压缩包至 /opt 目录
unzip v1.20.15.zip -d /opt/k8s
cd /opt/k8s/
for i in $(ls *.tar); do docker load -i $i; done
[root@k8s1 ~]# kubeadm init \
> --apiserver-advertise-address=192.168.233.91 \
> --image-repository registry.aliyuncs.com/google_containers \
> --kubernetes-version=v1.20.15 \
> --service-cidr=10.96.0.0/16 \
> --pod-network-cidr=10.244.0.0/16 \
> --token-ttl=0
--apiserver -advertise-addre :声明master节点的apiserver的监听地址是
--image-repository registry.aliyuncs.com/google_containers \:声明拉去镜像的仓库,使用阿里云
--service-cidr=10.96.0.0/16 \ 所有sevice的对外代理地址都是10.96.0.0/16
--pod-network-cidr=10.244.0.0/16 \ 所有pod的ip地址网段
--token-ttl=0
在node节点加入集群
kubeadm join 20.0.0.92:6443 --token j7h4sa.yau6cfyzva2zk9ll \
--discovery-token-ca-cert-hash sha256:13b961db6119c69691992ef0e33b46a97339290d6ff19d8effe00329e543d28f
mkdir -p $HOME/.kube
cd /etc/kubernetes
cp admin.conf /root/.kube/config
cd /root/.kube
chown $(id -u):$(id -g) $HOME/.kube/config
systemctl restart kubelet
kubectl edit cm kube-proxy -n=kube-system
systemctl restart kubelet
kubectl get node
kubectl get cs
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
vim /etc/kubernetes/manifests/kube-controller-manager.yaml vim /etc/kubernetes/manifests/kube-controller-manager.yaml
systemctl restart kubelt
kubectl get cs
kubectl get pods -n kube-system
cd /opt docker load < flannel.tar
mv /opt/cni /opt/cni_bak mkdir -p /opt/cni/bin tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin
node01
docker load -i flannel.tar
mv /opt/cni /opt/cin_bak
mkdir -p /opt/cni/bin
tar zxvf
./update-kubeadm-cert.sh all
5上
vim harbor.yml
//生成证书
mkdir -p /data/cert
cd /data/cert
#生成私钥
openssl genrsa -des3 -out server.key 2048
输入两遍密码:123456
生成证书签名请求文件
openssl req -new -key server.key -out server.c
#备份私钥
cp server.key server.key.org
#清除私钥密码
openssl rsa -in server.key.org -out server.key
输入私钥密码:123456
cd /opt/harbor
./prepare
./install.sh
node01
mdkir -p /etc/docker/certs.d/hub.test.com
在harbor主机上
scp -r data/ root20.0.0.93:/
scp -r data/ root20.0.0.94:/
在node01和node02
cp server.crt server.csr server.key /etc/docker/hun.com.test
在harbor上
vim /etc/hosts 192.168.233.94 hub.test.com
vim /lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
在node节点上
docker login -u admin -p 123456 https://hub.test.com
docker tag nginx:latest hub.test.com/library/nginx:v1
docker push hub.test.com/library/nginx:v1
在master节点上删除之前创建的nginx资源
kubectl delete deployment myapp-test
kubectl create deployment myapp-test --image=hub.test.com/library/nginx:v1 --port=80 --replicas=3
kubectl expose deployment myapp1-test --port=30000 --target-port=80
部署 Dashboard
master01 节点上操作
vim recommended.yaml
kubectl apply -f recommended.yaml
#创建service account并绑定默认cluster-admin管理员集群角色
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#获取token值
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
#使用输出的token登录Dashboard
https://20.0.0.92:30001
更多推荐
所有评论(0)