https://my.oschina.net/u/731542/blog/2966427 (單機版) 補充: 1 init以前設置hosts 關閉swap disable swap swapoff -a && sysctl -p kubeadm init --kubernetes-version=1.12.3 --pod-network-cidr=10.244.0.0/16 2 報錯: [ERROR KubeletVersion]: the kubelet version is higher than the control plane version. yum -y remove kubelet yum -y install kubelet-1.12.3 kubeadm-1.12.3
https://www.kubernetes.org.cn/4387.html
#!/bin/bash ## 準備工做 # 修改主機名 請手動重啓一下 # hostnamectl set-hostname k8s-master # disable swap # swapoff -a && sysctl -p # 重啓系統 # reboot ## 安裝docker yum -y install policycoreutils-python* wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.68-1.el7.noarch.rpm rpm -ivh container-selinux-2.68-1.el7.noarch.rpm yum install -y libltdl.so* yum install -y pigz* wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm rpm -ivh docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm ## 切換 k8s yum 源 touch /etc/yum.repos.d/kubernetes.repo cat >> /etc/yum.repos.d/kubernetes.repo <<EOF [kuberneten] 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 makecache sysctl net.bridge.bridge-nf-call-iptables=1 # 鏡像加速 添加私有倉庫 mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"], "insecure-registries":["10.9.2.62:5000"] } EOF # 這裏指定版本 否則會報錯 yum -y install kubelet-1.12.3 kubeadm-1.12.3 kubectl kubernetes-cni-0.6.0 kubectl version systemctl enable docker && systemctl start docker systemctl enable kubelet && systemctl start kubelet kubeadm config images list docker pull docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.12.3 docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.12.3 k8s.gcr.io/kube-apiserver:v1.12.3 docker pull docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.12.3 docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.12.3 k8s.gcr.io/kube-controller-manager:v1.12.3 docker pull docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.12.3 docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.12.3 k8s.gcr.io/kube-scheduler:v1.12.3 docker pull docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.12.3 docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.12.3 k8s.gcr.io/kube-proxy:v1.12.3 docker pull docker.io/mirrorgooglecontainers/pause-amd64:3.1 docker tag docker.io/mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause:3.1 docker pull docker.io/mirrorgooglecontainers/etcd-amd64:3.2.24 docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2.24 k8s.gcr.io/etcd:3.2.24 docker pull docker.io/coredns/coredns:1.2.2 docker tag docker.io/coredns/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2 docker images kubeadm config images list kubeadm init --kubernetes-version=1.12.3 --pod-network-cidr=10.244.0.0/16 if [ ! -d "$HOME/.kube" ]; then mkdir -p $HOME/.kube fi if [ ! -f "$HOME/.kube/config" ]; then rm -f $HOME/.kube/config fi sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # all-in-one kubectl taint nodes --all node-role.kubernetes.io/master- # 安裝 cni 網絡插件 docker pull quay.io/coreos/flannel:v0.10.0-amd64 mkdir -p /etc/cni/net.d/ tee /etc/cni/net.d/10-flannel.conf <<-'EOF' {"name":"cbr0","type":"flannel","delegate": {"isDefaultGateway": true}} EOF mkdir /usr/share/oci-umount/oci-umount.d -p mkdir /run/flannel/ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml kubectl get pods -n kube-system kubectl get nodes # 安裝 Weave scope kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')&k8s-service-type=NodePort" kubectl -n weave get service weave-scope-app
建立查看集羣html
kubectl get nodes -o wide # 查看集羣節點信息 kubectl cluster-info # Display cluster info 顯示集羣信息
部署應用node
kubectl run my-ngx --image=nginx:latest --port=80 # 部署應用 old: kubectl run -i --tty load-generator --image=busybox /bin/sh new: kubectl run --generator=run-pod/v1 -i --tty load-generator --image=busybox /bin/sh
發佈應用python
kubectl expose deployment my-ngx --type='NodePort' --port=80 # 發佈應用 kubectl get services/my-ngx # 查看my-ngx服務 kubectl describe services/my-ngx # 查看詳細信息 curl 10.9.2.42:19999 # curl NodeIP:NodePort
擴容縮容linux
kubectl scale deployment/my-ngx --replicas=2 # 擴容 kubectl get pods -o wide kubectl scale deployment/my-ngx --replicas=1 # 縮容
更新回滾nginx
kubectl set image deployment/my-ngx my-ngx=nginx:1.9 # 滾動更新 kubectl rollout undo deployment/my-ngx # 回滾
刪除git
kubectl get pods # 查看pods kubectl get deployment # 查看deployment服務 kubectl delete pods my-ngx-59497d7745-qzwqz # 刪除pods kubectl delete deployment my-ngx # 刪除deployment
查看錯誤信息github
journalctl -f -u kubelet
<<Kubenetes指南 倪鵬飛>> https://www.kubernetes.org.cn/4387.html # 安裝集羣