k8s部署

https://www.cnblogs.com/wwjj4811/p/13703804.html

 

 

 

三台centos7虚拟机,一台master,两台worker,集群中所有机器之间网络互通,可以访问外网,需要拉取镜像。

master ip:192.168.162.133

node1 ip:192.168.162.134

node2 ip:192.168.162.135

mobaxterm连接工具,便于操作。

因为刚搭建完三台centos后,都需要配置一些环境,需要执行的命令都一样的。所以用mobaxterm批量执行命令。

点击这个按钮:

image-20200920220752815
或者点击这个按钮:

image-20200921111137441

这样可以同时处理三个虚拟机:

image-20200920220827188

系统初始化,执行的命令如下:

# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭selinux sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时 # 关闭swap swapoff -a # 临时 sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久 # 将桥接的IPv4流量传递到iptables的链 cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system # 生效 # 时间同步 yum install ntpdate -y ntpdate time.windows.com #安装wget yum -y install wget
# 根据规划设置主机名,这里三台主机的hostname不一样 hostnamectl set-hostname k8smaster hostnamectl set-hostname k8snode1 hostnamectl set-hostname k8snode2 # 注意:在master添加hosts cat >> /etc/hosts << EOF 192.168.162.133 k8smaster 192.168.162.134 k8snode1 192.168.162.135 k8snode2 EOF

2|0所有节点安装Docker/kubeadm/kubelet

2|1安装docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version

2|2配置镜像源:

cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] } EOF

2|3添加阿里云YUM软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/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

重启docker

systemctl restart docker

2|4安装kubeadm,kubelet和kubectl

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 systemctl enable kubelet

3|0部署master

master机器上执行:

kubeadm init --apiserver-advertise-address=192.168.162.133 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

使用kubectl工具:

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl get nodes kubectl get pods -n kube-system

4|0加入k8s的node节点

复制如下内容(kubeadm init 成功后,会有如下提示,复制红框内容),在两个node中并执行:

image-20200921093107242

kubeadm join 192.168.162.133:6443 --token 3i3sem.gcif05w4s2v5sdnk \ --discovery-token-ca-cert-hash sha256:bc2541104400920f3211eeb0ee97088aebb7b5b558bdd23f0ece573b646201cd

5|0部署CNI网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl get pods -n kube-system

有可能kube-flannel.yml访问不了,这里提供副本:

kube-flannel.yml

最后搭建成功

image-20200920232436623

6|0测试k8s集群

在集群中创建一个pod,验证是否正常运行

kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get pod,svc

image-20200921094659936

为这里暴露出31648端口,访问任意节点,都能访问到nginx

image-20200921103153133

 

 

 

 

 

 

 

 

 

 

 

 

 

转载声明

本文转载自:ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

 

1.Yaml安装

下载yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

通过vim编辑yaml文件中默认的镜像源地址:这里替换为李振良老师的镜像地址。

    containers:
      - name: kubernetes-dashboard
        #image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
        image: lizhenliang/kubernetes-dashboard-amd64:v1.10.1

然后,由于默认Dashboard只能集群内部访问,因此修改Service为NodePort类型,暴露到外部可以访问:

复制代码
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
复制代码

最后,我们直接apply本地这个yaml文件来创建Dashboard:

kubectl apply -f kubernetes-dashboard.yaml

看到提示“service/kubernetes-dashboard created”代表Dashboard创建成功了,这时我们通过浏览器来访问一下:

此处有个大坑,只有火狐可以直接打开,其他360(两种模式)、chrome、Edge都不行。

1.设置浏览器安全策略

2.将证书设置成系统信任

接上一步,看到了登录界面,需要我们配置kubeconfig或输入token,这里我们选择后者,通过以下命令获取输出的token:

kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

拿到token在登录界面的令牌区域输入,然后点击登录:

如果忘记Token,使用下面的命令 

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

 即可进入下图所示的主界面了:

 

2.重装Dashboard

在kubernetes-dashboard.yaml所在路径下

kubectl delete -f kubernetes-dashboard.yaml
kubectl create -f kubernetes-dashboard.yaml

 

3.常用命令

查看所有的pod运行状态

kubectl get pod --all-namespaces

查看dashboard映射的端口

kubectl -n kube-system get service kubernetes-dashboard

 

菜鸟一枚,但有一颗不断进取的心; 兴趣所至,相信自己终会成功!!!!! 加油,imstrive


posted @ 2020-11-21 16:04  zzl0916  阅读(94)  评论(0编辑  收藏  举报