使用阿里云镜像源快速搭建kubernetes(k8s) on debian10
跳到导航
跳到搜索
目录
思路2021
先在围墙外的机器 pull下来 然后 push到自己的hub.docker 最后在内网的机器再pull 下来 再tag一下
参考一下 然后写成脚本吧 ubuntu 使用阿里云镜像源快速搭建kubernetes 1.15.2集群
初始化时 指定aliyun mirrors 本来是指定 1。17。1版本的 我改了新的
kubeadm init --apiserver-advertise-address=192.168.88.70 --image-repository registry.aliyuncs.com/google_containers --ignore-preflight-errors=all --kubernetes-version v1.17.3 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16
国内及一些快速安装的办法
https://gitee.com/imlzw/Kubernetes-1.12.3-all-auto-install
k3OS 由容器软件提供商 Rancher Labs发布,这是业界首个专为 Kubernetes 而生的极轻量操作系统
k8e 是轻量级、可扩展的企业级 Kubernetes 发行版,允许用户统一管理、保护和获得适用于企业环境的开箱即用 Kubernetes 集群
nginx-ingress-controller_install.sh
安装nginx-ingress-controller kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/cloud-generic.yaml
Docker国内镜像的配置及使用 pass
info
k8smaster 192.168.88.70 k8snode1 192.168.88.71 k8snode2192.168.88.72
cat >>/etc/hosts <<EOF 192.168.88.70 k8s-master 192.168.88.71 k8s-node1 192.168.88.72 k8s-node2 EOF 每台机器最少2GB内存,2CPUs。 集群中所有机器之间网络连接正常。 打开相应的端口,详见: [ Check required ports https://kubernetes.io/docs/setup/independent/install-kubeadm/#check-required-ports] Kubernetes要求集群中所有机器具有不同的Mac地址、产品uuid、Hostname。可以使用如下命令查看: # UUID cat /sys/class/dmi/id/product_uuid # Mac地址 ip link Set Hostname and update hosts file sudo hostnamectl set-hostname "k8s-master" sudo hostnamectl set-hostname k8s-node1 sudo hostnamectl set-hostname k8s-node2 #Add the following lines in /etc/hosts file on all three systems,
时间
安装Docker
https://blog.csdn.net/shykevin/article/details/98811021
安装kubelet,kubeadm,kubectl
基础信息
https://mirrors.aliyun.com/kubernetes/apt/dists/kubernetes-jessie/ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" 下一代 Debian 正式发行版的代号为 "buster" — 发布时间尚未确定 Debian 9("stretch") — 当前的稳定版 Debian 8("jessie") — 被淘汰的稳定版 kubectl version Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.5",
添加apt key以及源(所有主机)
apt update && apt install -y apt-transport-https curl curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - #注意 不是追加 echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-stretch main" >/etc/apt/sources.list.d/kubernetes.list 官方居然是这个 echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list 安装(所有主机) sudo apt update apt install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl #kubeadm is already the newest version (1.20.5-00). sudo apt install -y kubelet=1.15.2-00 kubeadm=1.15.2-00 kubectl=1.15.2-00 sudo apt-mark hold kubelet=1.15.2-00 kubeadm=1.15.2-00 kubectl=1.15.2-00
安装kubernetes集群(仅master)
kubeadm init --apiserver-advertise-address=192.168.88.70 --image-repository registry.aliyuncs.com/google_containers --ignore-preflight-errors=all --kubernetes-version v1.20.2 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 —image-repository 指定镜像源,指定为阿里云的源,这样就会避免在拉取镜像超时,如果没问题,过几分钟就能看到成功的日志输入 sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.2 --pod-network-cidr=192.169.0.0/16
init 过程
s-master:~# kubeadm init --apiserver-advertise-address=192.168.88.70 --image-repository registry.aliyuncs.com/google_containers --ignore-preflight-errors=all --kubernetes-version v1.20.2 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 [init] Using Kubernetes version: v1.20.2 [preflight] Running pre-flight checks [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.5. Latest validated version: 19.03 [WARNING SystemVerification]: missing optional cgroups: hugetlb [preflight] Pulling images required for setting up a Kubernetes cluster [preflight] This might take a minute or two, depending on the speed of your internet connection [preflight] You can also perform this action in beforehand using 'kubeadm config images pull' [addons] Applied essential addon: CoreDNS [addons] Applied essential addon: kube-proxy Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.88.70:6443 --token 8bemec.r64nlpkdmyijwrls \ --discovery-token-ca-cert-hash sha256:a21b898539b970e9efe7490037c0c55710d5541ce1c967ff5b9060be845b2d33
pod网络安装 flannel
可以下载或者直接复制出来
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
https://docs.projectcalico.org/getting-started/kubernetes/flannel/flannel
https://docs.projectcalico.org/getting-started/kubernetes/quickstart
node join
#在所有node上执行 kubeadm join 192.168.88.70:6443 --token 8bemec.r64nlpkdmyijwrls --discovery-token-ca-cert-hash sha256:a21b898539b970e9efe7490037c0c55710d5541ce1c967ff5b9060be845b2d33
常用命令
#等一下就全是Ready kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane,master 110m v1.20.5 k8s-node1 Ready <none> 93m v1.20.5 k8s-node2 Ready <none> 93m v1.20.5 root@k8s-master:~# kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-7f89b7bc75-6fcdq 1/1 Running 0 4h23m kube-system coredns-7f89b7bc75-9n56h 1/1 Running 0 4h23m kube-system etcd-k8s-master 1/1 Running 0 4h23m kube-system kube-apiserver-k8s-master 1/1 Running 0 4h23m kube-system kube-controller-manager-k8s-master 1/1 Running 0 4h23m kube-system kube-flannel-ds-9kcwd 1/1 Running 0 4h7m kube-system kube-flannel-ds-ql2hn 1/1 Running 0 4h9m kube-system kube-flannel-ds-vk2qb 1/1 Running 0 4h7m kube-system kube-proxy-cgkhf 1/1 Running 0 4h23m kube-system kube-proxy-gcbsk 1/1 Running 0 4h7m kube-system kube-proxy-qnc27 1/1 Running 0 4h7m kube-system kube-scheduler-k8s-master 1/1 Running 0 4h23m root@k8s-master:~#
Kubernetes 1.20.x部署dashboard
集群测试 万年hello
root@k8s-master:~# cat hello.yml apiVersion: apps/v1 kind: Deployment metadata: name: hello-world spec: selector: matchLabels: run: load-balancer-example replicas: 2 template: metadata: labels: run: load-balancer-example spec: containers: - name: hello-world image: registry.cn-hangzhou.aliyuncs.com/aliyun_google/google-sample-node-hello:1.0 ports: - containerPort: 8080 protocol: TCP root@k8s-master:~# kubectl apply -f hello.yml deployment.apps/hello-world created root@k8s-master:~# kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE hello-world 0/2 2 0 13s my-httpd 2/2 2 2 39h my-nginx 2/2 2 2 45h nginx 1/1 1 1 3d13h root@k8s-master:~# kubectl expose deployment hello-world --type=NodePort --name=node-service service/node-service exposed root@k8s-master:~# kubectl get service node-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE node-service NodePort 10.96.231.107 <none> 8080:32355/TCP 48s root@k8s-master:~# root@k8s-master:~# kubectl describe service node-service Name: node-service Namespace: default Labels: <none> Annotations: <none> Selector: run=load-balancer-example Type: NodePort IP Families: <none> IP: 10.96.231.107 IPs: 10.96.231.107 Port: <unset> 8080/TCP TargetPort: 8080/TCP NodePort: <unset> 32355/TCP Endpoints: 10.244.2.18:8080,10.244.2.19:8080 Session Affinity: None External Traffic Policy: Cluster Events: <none> 可以看到,服务通过30585 端口映射到容器的8080端口,这样我们就可以通过 32355端口访问容器内的web应用了,如下响应正常
http://192.168.88.70:32355/ Hello Kubernetes!
部署应用
站内资源
Install and Configure Kubernetes (k8s) on ubuntu
使用kubeadm离线部署kubernetesv1.9.0 on centos7
see also
ubuntu 使用阿里云镜像源快速搭建kubernetes 1.15.2集群